我试图将一些带有android的json数据发送到服务器。服务器是在我当地的WI-FI连接的覆盆子pi。 每次我尝试发送数据时,我的调试输出都会拒绝连接。但我无法弄清楚原因。
这是我的android方法:
public void sendJson(View view){
String url = "http://192.168.0.5/control_center/functions/incomming.php";
TextView textView_result;
textView_result = (TextView) findViewById(R.id.textView_result);
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader("Content-Type" , "application/json");
JSONObject jsonObject = new JSONObject();
jsonObject.put("regid", "1234345893458435934kl34n543kl543öl53n4k5j43");
String json = jsonObject.toString();
StringEntity se = new StringEntity(json);
httpPost.setEntity(se);
HttpResponse httpResponse = httpClient.execute(httpPost);
textView_result.setText(httpResponse.toString());
}catch(JSONException e){
e.printStackTrace();
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
这是我服务器上的php文件:
<?php
include('db_connect.php');
$db = new _DB_Connect();
$db->connect();
if(isset($_POST['regid'])){
$regid = $_POST['regid'];
$save_entry = "insert into gcm_users (gcm_regid) values ('$regid')";
mysql_query($save_entry) or die (mysql_error());
} else {
echo 'no data';
}
&GT;
给出了关于android的Internet权限。
<uses-permission android:name="android.permission.Internet" />
答案 0 :(得分:1)
可能有很多原因,但最常见的是:
防火墙阻止计算机之间的访问(也检查本地防火墙)
端口未在目标计算机上打开
检查防火墙并且端口已打开后,使用telnet连接到ip / port以测试连接。这可以消除您的应用程序中的任何潜在问题。
答案 1 :(得分:0)
好的,我在我的案子中解决了这个问题。 我知道互联网任务应该处于异步任务中,但我通过解决方法解决了这个问题:
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
现在连接正常。我这样做了,因为它对我来说更重要,我将数据传递给服务器。
不,我得到了这个输出,但遗憾的是我的数据库中没有数据:
“ 11-25 17:27:02.745 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo +,hn 26(0x6373646576656c),sn(),family 0,flags 4 11-25 17:27:02.745 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo-,err = 8 11-25 17:27:02.745 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo +,hn 26(0x6373646576656c),sn(),family 0,flags 1024 11-25 17:27:02.745 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo-,1 11-25 17:27:02.745 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo_proxy + 11-25 17:27:02.815 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo_proxy-,成功 11-25 17:27:02.815 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo +,hn 13(0x3138382e313030),sn(),family 0,flags 4 11-25 17:27:02.815 31868-31868 / com.development2014.cs.ajsontest3 D / libc:[NET] getaddrinfo-,SUCCESS 11-25 17:27:02.865 31868-31868 / com.development2014.cs.ajsontest3 I / System.out:org.apache.http.message.BasicHttpResponse@41f848d8 11-25 17:27:02.865 31868-31868 / com.development2014.cs.ajsontest3 I / System.out: {“regid”:“blablabla”} '