【发布时间】:2016-05-18 12:00:34
【问题描述】:
我正在尝试向 IP 192.168.1.7 上的微控制器发出 HTTP 请求,但连接被拒绝。如果我在手机浏览器上打开它,它会完美运行。这是我的请求函数
class MakeRequest extends AsyncTask<String, Void, String>
{
@Override
protected String doInBackground(String... urls) {
String response = "";
for (String url : urls) {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}
}
private void makeRequest(String s) throws IOException {
Log.e("TEST",s);
String IP= "http://192.168.1.7/";
String url=IP+s;
MakeRequest req = new MakeRequest();
req.execute(new String[] { url });
}
我还在清单中添加了权限
<uses-permission android:name="android.permission.INTERNET" />
错误日志是:
05-18 17:14:50.979 27210-27565/com.reuben.machinecontrol W/System﹕ ClassLoader referenced unknown path: /system/framework/tcmclient.jar
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.7 refused
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:193)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:366)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
05-18 17:14:50.980 27210-27565/com.reuben.machinecontrol W/System.err﹕ at com.reuben.machinecontrol.MainActivity$MakeRequest.doInBackground(MainActivity.java:194)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at com.reuben.machinecontrol.MainActivity$MakeRequest.doInBackground(MainActivity.java:185)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:295)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ Caused by: java.net.ConnectException: socket failed: EACCES (Permission denied)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ ... 14 more
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ Caused by: java.net.SocketException: socket failed: EACCES (Permission denied)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at libcore.io.IoBridge.socket(IoBridge.java:619)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.net.PlainSocketImpl.create(PlainSocketImpl.java:198)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.net.Socket.checkOpenAndCreate(Socket.java:689)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at java.net.Socket.connect(Socket.java:849)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:124)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:149)
05-18 17:14:50.981 27210-27565/com.reuben.machinecontrol W/System.err﹕ ... 14 more
05-18 17:14:50.982 27210-27565/com.reuben.machinecontrol W/System.err﹕ Caused by: android.system.ErrnoException: socket failed: EACCES (Permission denied)
05-18 17:14:50.982 27210-27565/com.reuben.machinecontrol W/System.err﹕ at libcore.io.Posix.socket(Native Method)
05-18 17:14:50.982 27210-27565/com.reuben.machinecontrol W/System.err﹕ at libcore.io.BlockGuardOs.socket(BlockGuardOs.java:282)
05-18 17:14:50.982 27210-27565/com.reuben.machinecontrol W/System.err﹕ at libcore.io.IoBridge.socket(IoBridge.java:604)
05-18 17:14:50.982 27210-27565/com.reuben.machinecontrol W/System.err﹕ ... 19 more
我也没有任何代理连接。同样,它在移动浏览器上运行良好,但连接在应用程序中被拒绝。
【问题讨论】:
-
这个微控制器有某种认证吗?
-
没有那种东西。正如我所说,它可以在浏览器中完美运行。
标签: android httprequest