2

これがリクエストを送信するための私のAndroidコードです:

// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(serverUrl);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("abc", "abc2"));
httpPost.setEntity(new UrlEncodedFormEntity(params));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream is = null;
is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
    sb.append(line + "\n");
}
is.close();
String json = "";
json = sb.toString();
Log.d("JSON", "JSON is:" + json);

リクエストを取得するための私のphpコードは次のとおりです。

<?php

echo $_POST['abc'];

?>

アプリケーションを実行すると、文字列jsonは何もありません。私は取得することを期待していますJSON is:abc2
次に、Androidの部分でいくつかのコードを変更します:

HttpPost httpPost = new HttpPost(serverUrl);  

への変更:

HttpPost httpPost = new HttpPost(serverUrl + "?abc=abc3");

phpの部分で:

<?php

echo $_GET['abc'];

?>

今回はjson、logcatの文字列はですJSON is:abc3。合ってます!!
何度も試しましたが、paramsを使用してHttpPostリクエストを送信できないようです。
誰かが私のコードの何が悪いのかを見つけるのを手伝ってくれる?

4

1 に答える 1

0

このコードを試してください

HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);

DefaultHttpClient httpclient = new DefaultHttpClient(httpParameters);
HttpPost httppost = new HttpPost(serverUrl);

try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("abc", "abc2"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    HttpResponse response = httpclient.execute(httppost);
    nameValuePairs.clear();
    nameValuePairs = null;

    HttpEntity httpEntity = response.getEntity();
    response = null;
    Log.e("Server Response",EntityUtils.toString(httpEntity));
} catch (IOException e) {
    Log.e("IOException", " IOException ");
    e.printStackTrace();
} catch (Exception e){
    Log.e("Exception", " Exception ");
    e.printStackTrace();
} finally {
    httpParameters = null;
    httppost = null;
}
于 2012-07-06T04:45:57.553 に答える