您好我正在尝试将一些参数发送到我的php服务器
我真的希望我的php服务器接收用户发送的参数并将它们存储在mysql数据库
如果我尝试连接http://somesite/store.php?Location=somewhere&temp=something 使用Chrome浏览器它运作良好。
但是如果我尝试在android上使用它。
我的数据库中没有更新记录
我的问题是什么?
URL testUrl;
try {
testUrl = new URL("http://somesite.com/gcm_server/getdata.php?Location=bathroom&Humidity=25%&Temperature=27&Brightness=45");
HttpURLConnection conn = (HttpURLConnection)testUrl.openConnection();
InputStream in = conn.getInputStream();
InputStreamReader isw = new InputStreamReader(in);
int data = isw.read();
while (data != -1) {
char current = (char) data;
data = isw.read();
System.out.print(current);
}
Log.d(TAG, "testUrl= " + testUrl.toString());
conn.disconnect();
}catch(MalformedURLException ex){
Log.e(TAG, ex.toString());
}
catch(IOException e){
Log.e(TAG, "url connection Error");
}
如果我尝试连接然后我得到了日志网址连接错误但是如果我尝试连接某个网站(我用不同的网站覆盖它)。我可以使用chrome浏览器进行连接
我不知道发生了什么......请帮帮我
答案 0 :(得分:0)
如果您使用本地Web服务器,则使用10.0.2.2作为服务器名称而不是localhost。 因为android使用localhost为模拟器它自己..
答案 1 :(得分:0)
行。 首先。如果要将内容发送到服务器并存储它,您应该使用POST请求而不是GET。
我在这里有一个小样本可以帮助您在Android中执行此操作:
//These are your parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("param1","foo"));
nameValuePairs.add(new BasicNameValuePair("param2","bar"));
String result = "";
InputStream is = null;
HttpClient httpClient = new DefaultHttpClient();
String urlPath = "http://somesite.com/somepage.php";
try {
HttpPost httpPost = new HttpPost(urlPath);
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
BasicResponseHandler responseHandler = new BasicResponseHandler();
result = httpClient.execute(httpPost, responseHandler);
} catch (Exception e) {
//Exception
}
//Your result is in the result variable now
此示例完全不完整,您需要导入所使用的内容,但希望您能得到我正在做的事情。
您可以使用$_POST["theparam"];