我想從android手機發送信息到服務器。Android上的Http發佈:服務器請求和響應
當服務器收到信息時,它發回1或0來表示通過或失敗。服務器端的一切都很好,因爲在iOS的另一個應用程序中執行相同的事情,但它的工作原理。當服務器收到請求時,它也會發送一封電子郵件。
我的問題是,它似乎並不像應用程序正在聯繫服務器。當我運行應用程序時,不會回覆任何響應,並且一旦執行Http Post代碼就不會發送電子郵件。
我有下面的Http Post代碼,非常感謝您的幫助。
public void send()
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(site);
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("dateOfEventStart", startYear + "-" + startMonth + "-" + startDay));
nameValuePairs.add(new BasicNameValuePair("dateOfEventEnd", endYear + "-" + endMonth + "-" + endDay));
nameValuePairs.add(new BasicNameValuePair("locationType", locType));
nameValuePairs.add(new BasicNameValuePair("locationZipCode", location));
nameValuePairs.add(new BasicNameValuePair("eventType", type));
nameValuePairs.add(new BasicNameValuePair("groundSurface", groundType));
nameValuePairs.add(new BasicNameValuePair("numberOfGuests", numGuests + ""));
nameValuePairs.add(new BasicNameValuePair("seatingArrangments", arrangement));
nameValuePairs.add(new BasicNameValuePair("accessoriesTables",stuff));
nameValuePairs.add(new BasicNameValuePair("estimatedArea", tent));
nameValuePairs.add(new BasicNameValuePair("estimatedRoomToSpare", spared));
nameValuePairs.add(new BasicNameValuePair("contactName", nameA));
nameValuePairs.add(new BasicNameValuePair("contactPhone", phoneA));
nameValuePairs.add(new BasicNameValuePair("contactEmail", addressA));
nameValuePairs.add(new BasicNameValuePair("contactComments", comment));
nameValuePairs.add(new BasicNameValuePair("isInternational", isInternational + ""));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
responseString = response.toString();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
網站是早些時候宣佈的變量。它是一個包含表單接收器的位置的字符串
也低於是我得到了有關服務器的信息
您將與(最有可能)一個「內容 - 發送一個「POST」請求鍵入「application/x-www-form-urlencoded」。
「POST」的內容將是一個格式與網站網址的「查詢>字符串」類似的字符串。 (如果你不熟悉它們,這就是問號後面的內容。)
在這個字符串中,有些鍵和值之間用等號連接。鍵/值對由>符號分隔(&'s)。
這是我在ASP用於測試服務,如果它有助於(具有>添加用於可讀性回車)的字符串的一個例子:
strContent =「dateOfEventStart = 2011-09-24
& dateOfEventEnd = 2011-09-26
&的locationType = 「& Server.URLEncode( 」住宅「)&」
& locationZipCode = 38016
& EVENTTYPE = 「& Server.URLEncode( 」企業活動「)& 」
& eventTypeSecondary =
& groundSurface =「 & Server.URLEncode(」 碎石(超過污垢) 「)&」
& groundSurfaceSecondary =
個& numberOfGuests = 90個
& seatingArrangements =」 &服務器。的URLEncode( 「6位客人回合表」)& 「
& accessoriesTables =」 & Server.URLEncode( 「自助,蛋糕,禮品,飲料站」)&「
& accessoriesEntertainment =
& estimatedArea =「& Server.URLEncode(」1200平方英尺「)&」
& estimatedTentSize =「& Server.URLEncode( 「30英尺×40英尺或20英尺×60英尺」)& 「
& estimatedRoomToSpare =」 & Server.URLEncode( 「0平方英尺或0平方英尺」)&「
& CONTACTNAME = 「& Server.URLEncode( 」喬納森陳「)&」
& contactPhone = 9011234567
& contactEmail =」 & Server.URLEncode( 「[email protected]」)& 「
& contactComments =」 & Server.URLEncode( 「這是一個長註釋」。)
以我ASP例如你可能已經注意到了「Server.URLEncode」周圍的字符串。這是>所以某些可能會混淆數據的字符會被編碼爲%十六進制ASCII>值。例如,如果有人輸入「我喜歡芝士&蛋糕」作爲他的評論,該程序>會認爲該&符號表示新的鍵/值對。如果我們對網址進行編碼,它會顯示爲「I%20love%20cheese%20%26%20cake」。
好吧,我檢查的權限,以及Internet權限不在那裏,我補充道。它現在與服務器進行通信,但表單不能正常工作。它收到字符串,但似乎沒有處理它 – Zaask