0

データをサーバーに投稿し、投稿データを応答の形式で取得しています...このコードを使用します

PostMethod post = new PostMethod(this._serverUrl);

        InputStream is=null;
        is = new ByteArrayInputStream(postData.getBytes("UTF-8"));

        post.setRequestEntity(new InputStreamRequestEntity(is));
        post.setRequestHeader("Content-type", "text/xml; charset=ISO-8859-1");

        HttpClient httpclient = new HttpClient();

        int result = httpclient.executeMethod(post);

        String response="";
        response    =   post.getResponseBodyAsString();

Commons Apache httpclient を使用して投稿を行いました....ここで、次のような応答が得られます

03-31 17:53:49.192: INFO/Response(2237): <?xml version="1.0" encoding="UTF-8"?>
03-31 17:53:49.192: INFO/Response(2237): <AndroidGame>
03-31 17:53:49.192: INFO/Response(2237):   <Result>0</Result>
03-31 17:53:49.192: INFO/Response(2237):   <ErrorCode>509</ErrorCode>
03-31 17:53:49.192: INFO/Response(2237):   <ErrorMsg>You are using wrong Super Password</ErrorMsg>
03-31 17:53:49.192: INFO/Response(2237): </AndroidGame>

しかし、私は文字列で応答を取得する必要があります....単一の文字列で応答を取得することはできません...それはチャンクで来ます...誰かがこれで私を助けてくれますか?

4

1 に答える 1

1

私はこのようにしています(私が使用するさまざまな方法からコードを統合したので、少し面倒になる可能性があります):

    HttpPost request = new HttpPost(url);
    List<NameValuePair> postParameters = new ArrayList<NameValuePair>();
    postParameters.add(new BasicNameValuePair(PARAMETER_LOGIN, login));
    postParameters.add(new BasicNameValuePair(PARAMETER_PASSWORD, password));
    UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters, "UTF-8");
    request.setEntity(formEntity);

    HttpResponse response = client.execute(request);

    BufferedReader in = null; 
    try {
        //Log.d("status line ", "test " + response.getStatusLine().toString());
        in = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); 
        StringBuffer sb = new StringBuffer(""); 
        String line = ""; 
        String NL = System.getProperty("line.separator"); 
        while ((line = in.readLine()) != null) { 
            sb.append(line + NL); 
        } 
        in.close(); 
        return sb.toString();       
    } finally { 
        if (in != null) { 
            try { 
                in.close(); 
            } catch (IOException e) { 
                e.printStackTrace();
            } 
        } 
    } 
于 2011-03-31T12:43:29.000 に答える