使用身份验证的httpget请求

时间:2012-04-04 12:35:14

标签: java android http

我尝试使用代码生成http get请求:

String username = "test\\v100";
String host = "1.2.3.4";
String password = "pass";

HttpClient client = new DefaultHttpClient();

AuthScope as = new AuthScope(host, 90);
UsernamePasswordCredentials upc = new UsernamePasswordCredentials(username, password);

((AbstractHttpClient) client).getCredentialsProvider().setCredentials(as, upc);

BasicHttpContext localContext = new BasicHttpContext();

BasicScheme basicAuth = new BasicScheme();
localContext.setAttribute("preemptive-auth", basicAuth);

HttpHost targetHost = new HttpHost(host, 90, "http");

HttpGet httpget = new HttpGet("/");

HttpResponse response = client.execute(targetHost, httpget, localContext);

但是在最后一行获得异常“java.net.SocketException:Permission denied”。

Android-2.2与eclipse IDE。

主机系统中的卷曲请求

curl -u test\v100:pass "http://1.2.3.4:90"

工作正常。

如何以正确的方式发出http请求?

谢谢!

1 个答案:

答案 0 :(得分:3)

您是否在清单文件中添加了互联网权限?

如果没有,请在AndroidManifest.xml中添加以下行:

<uses-permission android:name="android.permission.INTERNET" /> 
相关问题