使用身份验证的httpget请求

use*_*837 6 java android http

我试着用代码制作http get request:

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);
Run Code Online (Sandbox Code Playgroud)

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

Android-2.2与eclipse IDE.

主机系统中的卷曲请求

curl -u test\v100:pass "http://1.2.3.4:90"
Run Code Online (Sandbox Code Playgroud)

工作良好.

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

谢谢!

Mea*_*tje 2

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

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

<uses-permission android:name="android.permission.INTERNET" /> 
Run Code Online (Sandbox Code Playgroud)