2

を使用してデータを送信する多くの方法を試しましたがHttpPost、成功しませんでした。誰かがこれについて知っている場合は助けてください?

私のサービスの URL は次のとおりです。
http://xxxxx/xxx/abc.php?id=xx&name=xxx&data=[{.....}]

ブラウザからヒットすると正常に動作しますが、コードからdata=[{}]は送信されません。

私の最後の試みは:
1--->

String serviceUrl = "http://xxxxx/xxx/abc.php"; 


DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(serviceUrl);
        httpPost.setHeader("id", "xx");
        httpPost.setHeader("name", "xxx");
        httpPost.setHeader("Content-Type", "application/json");
        StringEntity entity = new StringEntity(jsonArr.toString(), HTTP.UTF_8);
        httpPost.setEntity(entity);
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        json_str = EntityUtils.toString(httpEntity);

2--->

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("id", "xx") );
    nameValuePairs.add(new BasicNameValuePair("name", "xxx"));      
    nameValuePairs.add(new BasicNameValuePair("data", jsonArr.toString()));

        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(serviceUrl);
        httpPost.setHeader("Content-Type", "application/json"); 
        StringEntity entity = new StringEntity(nameValuePairs.toString(), HTTP.UTF_8);
        httpPost.setEntity(entity);
        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        json_str = EntityUtils.toString(httpEntity);

3--->

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("id", "xx") );
nameValuePairs.add(new BasicNameValuePair("name", "xxx"));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(serviceUrl);
httpPost.setHeader("Content-Type", "application/json");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));   
StringEntity entity = new StringEntity(jsonArr.toString(), HTTP.UTF_8);
httpPost.setEntity(entity);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
json_str = EntityUtils.toString(httpEntity);

出力:ブラウザー で url (data パラメーターなし) で取得したのと同じ応答を取得して'http://xxxxx/xxx/abc.php?id=xx&name=xxx'います。これは、data=[{}] がコードから simple_string_parameters で送信されていないことを意味します。

4

1 に答える 1

3

HttpPost を使用してデータを送信する多くの方法を試みましたが、成功しませんでした

=>はい、WebサービスのURLはPOSTではなくGETメソッドに従っているため、明らかです。

http://xxxxx/xxx/abc.php?id=xx&name=xxx&data=[ {.....}]

HTTPGetそのため、の代わりにメソッドを試すことをお勧めしますHTTPPost

Android の HTTP GET リクエストにパラメーターを追加するには、この回答を確認してください。

于 2013-05-22T05:58:03.813 に答える