0
我有一個Android應用程序發送一個HTTP POST到遠程服務器:HTTP POST從Android應用程序服務器無法正常工作
protected Void doInBackground(Void... params) {
// Get the message from the intent
Intent intent = getIntent();
String message = intent.getStringExtra(MapsActivity.EXTRA_MESSAGE);
double longitude = intent.getDoubleExtra(MapsActivity.EXTRA_LONGITUDE, 0.0);
double latitude = intent.getDoubleExtra(MapsActivity.EXTRA_LATITUDE, 0.0);
Log.d("doInBackground", message);
Log.d("doInBackground", String.valueOf(longitude));
Log.d("doInBackground", String.valueOf(latitude));
URL url = null;
HttpURLConnection client = null;
try {
// Establish http connection
url = new URL("http://******.com/");
client = (HttpURLConnection) url.openConnection();
client.setDoOutput(true);
client.setDoInput(true);
client.setRequestMethod("POST");
client.connect();
OutputStreamWriter writer = new OutputStreamWriter(client.getOutputStream());
String output;
output = URLEncoder.encode("message", "UTF-8")
+ "=" + URLEncoder.encode(message, "UTF-8");
output += "&" + URLEncoder.encode("longitude", "UTF-8") + "="
+ URLEncoder.encode(String.valueOf(longitude), "UTF-8");
output += "&" + URLEncoder.encode("latitude", "UTF-8") + "="
+ URLEncoder.encode(String.valueOf(latitude), "UTF-8");
Log.d("doInBackground(output)", output);
Log.d("doInBackground(code)", String.valueOf(client.getResponseCode())); // Return 200
writer.write(output);
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
client.disconnect();
}
return null;
}
在服務器上,我有:
<?php
$m = urldecode($_POST['message']);
$long = urldecode($_POST['longitude']);
$lat = urldecode($_POST['latitude']);
print " ==== POST DATA =====
Message : $m
Longitude : $long
Latitude : $lat";
?>
客戶端.getResponseCode()返回200,我認爲這意味着我的連接成功了?但該網站仍然沒有顯示。什麼可能導致問題? 我
E/GMPM: getGoogleAppId failed with status: 10
E/GMPM: Uploading is not possible. App measurement disabled
可能這個問題?
你有什麼特別的理由不使用像Retrofit這樣的庫嗎? –
不,我不知道這個圖書館。 (我認爲我正在做的是最簡單的方法之一,我只是測試我是否可以從Android應用程序發送一些數據到遠程服務器,我使用JSON傳遞數據,但它沒有工作。我試圖找到另一種方式走動。(這是我的原始帖子:http://stackoverflow.com/questions/33728721/json-data-sent-from-android-does-not-show-on-the-服務器)你有什麼理由推薦這個庫嗎? – ZigZagZebra
這是網絡調用最常用的庫,它由Square開源,並且在互聯網上有很活躍的開發和大量的文檔,它自動編組JSON,處理標題,body和async。如果每個應用都有一個庫,那就是這個。 –