2

私のアプリケーションでは、POST リクエストを使用して応答を取得しようとしています。応答サーバーが Json 形式で送信しています。しかし、プロパティを追加した後、応答コードが 411 として返されます (つまり、コンテンツの長さの問題)。コンテンツの長さは既に追加しています。次に、私が得ていない問題はどこにありますか。これが私のコードです:

String url = "https://xxx:8243/people/v3";
STRURL = url + HttpComm.getConnectionString().trim();

StringBuffer postData = new StringBuffer();
HttpConnection httpConnection = null;
try {
    httpConnection = (HttpConnection) Connector.open(STRURL);
} catch (IOException e1) {
    e1.printStackTrace();
};

try {
    httpConnection.setRequestMethod("POST");
    postData.append("?username="+user);
    postData.append("&password="+password);
    String encodedData = postData.toString();
    byte[] postDataByte = postData.toString().getBytes("UTF-8");
    httpConnection.setRequestProperty("Authorization", "bearer"+"ZWOu3HL4vwaOLrFAuEFqsxNQf6ka");
    httpConnection.setRequestProperty("Content-Type","application/json");
    httpConnection.setRequestProperty("Content-Length", String.valueOf(postDataByte.length));
    OutputStream out = httpConnection.openOutputStream();
    DataOutputStream dos = new DataOutputStream(out);
    out.write(postData.toString().getBytes());
    out.flush();
    int statusCode = httpConnection.getResponseCode();
    Logger.out("HttpComm", "status code:::::::   "+statusCode);
    if (statusCode != HttpConnection.HTTP_OK)
    {

    }

更新されたコード:

HttpConnection httpConnection = null;
    try {
        httpConnection = (HttpConnection) Connector.open(STRURL);
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    };
            try {
                httpConnection.setRequestMethod("POST");
                URLEncodedPostData postData = new URLEncodedPostData("UTF-8", false);
                 postData.append("username", user);
                 postData.append("password", password);
                 byte[] postDataByte = postData.getBytes();
                  httpConnection.setRequestProperty("Authorization", "bearer"+"ZWOu3HL4vwaOLrFAuEFqsxNQf6ka");
                   httpConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                   httpConnection.setRequestProperty("Content-Length", String.valueOf(postDataByte.length));
                   OutputStream out = httpConnection.openOutputStream(); 
                   out.write(postDataByte);
                   out.flush();

                   int statusCode = httpConnection.getResponseCode();
                   Logger.out("HttpComm", "status code:::::::   "+statusCode);
4

1 に答える 1