6

我试图用代码发出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”。

带有 Eclipse IDE 的 Android-2.2。

主机系统中的 curl 请求

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

工作正常。

我怎样才能以正确的方式发出http请求?

谢谢!

4

1 回答 1

3

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

如果没有,请在您的 AndroidManifest.xml 中添加这一行:

<uses-permission android:name="android.permission.INTERNET" /> 
于 2012-04-04T12:48:50.903 回答