我试图通过WiFi从Android设备访问本地Web服务器,我可以通过浏览器从我的笔记本电脑访问,或使用curl.我也可以在Android设备浏览器上访问服务器.
我用来访问服务器的代码产生"连接被拒绝"异常.
这是代码:
public void getController1() {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://192.168.1.169:8000");
HttpResponse response = null;
System.out.println(httpget.toString());
try {
response= httpclient.execute(httpget);
txtViewStatus.setText("Controller 1 - OK"+response);
} catch(Exception e) {
e.printStackTrace();
txtViewStatus.setText("Controller 1 - Error"+e);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试阅读WIFI代理设置
从Android版本的设备2.XX - 4.XX没有任何成功.
呼叫:
String proxy = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.HTTP_PROXY);
Run Code Online (Sandbox Code Playgroud)
始终返回null.
我还添加到我的Android清单:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
仍然会返回null.
还尝试过:
android.net.Proxy. getHost(Context ctx) – which is deprecated – returns the IP
android.net.Proxy. getPortt(Context ctx) – which is deprecated – returns always -1.
Run Code Online (Sandbox Code Playgroud)
Java调用:
System.getProperty("http.proxyHost");
System.getProperty("http.proxyCall");
Run Code Online (Sandbox Code Playgroud)
也返回null.
是否有一个工作代码可以检索所有这些设置,或者至少部分来自所有Android版本的设备?
当没有防火墙时,标准的getUrlContent工作正常.但是当我尝试在防火墙后面进行操作时,我得到了例外.
我试过在AVD管理器中设置"http代理服务器",但它没有用.知道如何正确设置吗?
和btw:来自android文档"你可以使用-verbose-proxy选项来诊断代理连接问题." -verbose-proxy根本不是一个有效的选项.
protected static synchronized String getUrlContent(String url) throws ApiException {
if(url.equals("try")){
return "thanks";
}
if (sUserAgent == null) {
throw new ApiException("User-Agent string must be prepared");
}
// Create client and set our specific user-agent string
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
request.setHeader("User-Agent", sUserAgent);
try {
HttpResponse response = client.execute(request);
// Check if server response is valid
StatusLine status = response.getStatusLine();
if (status.getStatusCode() != HTTP_STATUS_OK) {
throw new ApiException("Invalid response from server: " …Run Code Online (Sandbox Code Playgroud)