0

を使用してデータを投稿しようとしてmultipart/form-dataいますが、httpPost メソッドでは機能しません。APIからjson文字列としてデータを送信する必要がありますが、ヘッダーを削除するとサーバーからの応答が悪くcontent-type、次のデータを編集する権限がないと応答が返されますPOST

以下は私のコードです:

public String webPostMultiForm(List<NameValuePair> params) {
        String postUrl = webServiceUrl;
        httpPost = new HttpPost(postUrl);
        try {
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            httpPost.addHeader("Cookie",appStatus.getSharedStringValue(appStatus.AUTH_KEY)); 
            httpPost.addHeader("Content-Type","multipart/form-data; boundary=assdsfdffafasf");
            httpPost.addHeader("Content-Disposition", "form-data; name= args");
            //httpPost.setHeader("Transfer-Encoding","chunked");
        } catch (UnsupportedEncodingException uee) {
            Log.e(TAG, uee.getMessage());
        }
        Log.e(TAG,"WebGetURL: " + postUrl);
        try {           
            response = httpClient.execute(httpPost);
        } catch (Exception e) {
            if (e.getMessage() != null) {
                Log.e(TAG, "httpClient.execute(httpPost) Exception: " + e.getMessage());
            } else {
                Log.e(TAG, "httpClient.execute(httpPost) Exception: " + e.getClass().toString());
            }
        }
        try {
            strResponse = EntityUtils.toString(response.getEntity());
        } catch (Exception e) {
            if (e.getMessage() != null) {
                Log.e(TAG, e.getMessage());
            } else {
                Log.e(TAG, e.getClass().toString());
            }
        }
        return strResponse;
    }

私が間違っていること、またはこれに対する他のアプローチはありますか。

4

1 に答える 1

1

http://loopj.com/android-async-http/を使用してはどうですか。何も心配する必要はありません。その非常に軽量。

于 2013-03-28T09:29:06.113 に答える