0

サーバーにデータを投稿しようとしていますが、期待どおりの結果が得られません。200 OK 応答を受け取りますが、返された HTML ソースには「エラー - 404 ページが見つかりません」という文字列が含まれています。

送信している一連のデータに何か問題があると思います。以前にマルチフォームデータを扱ったことがないので、何かが足りないかもしれません。

送信されるマルチフォーム データは次のとおりです (改ざんデータを使用して、送信される内容を確認しました

    POSTDATA =-----------------------------124853047628807
Content-Disposition: form-data; name="mgnlModelExecutionUUID"

4ee01e05-dc16-4535-a222-693b98ec9b69
-----------------------------124853047628807
Content-Disposition: form-data; name="field"


-----------------------------124853047628807
Content-Disposition: form-data; name="name"

test
-----------------------------124853047628807
Content-Disposition: form-data; name="surname"

test
-----------------------------124853047628807
Content-Disposition: form-data; name="age"

test
-----------------------------124853047628807--

このデータを送信するために、以下のように MultipartEntityBuilder を作成しました。

    StringBody name = new StringBody("test", ContentType.MULTIPART_FORM_DATA);
    StringBody surname = new StringBody("test", ContentType.MULTIPART_FORM_DATA);
    StringBody age = new StringBody("test", ContentType.MULTIPART_FORM_DATA);
    StringBody field = new StringBody("", ContentType.MULTIPART_FORM_DATA);
    MultipartEntityBuilder builder = MultipartEntityBuilder.create();
    builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);

    builder.addPart("name", name);
    builder.addPart("surname", surname);
    builder.addPart("age", age);
    builder.addPart("field",field);


    return builder;

その上で、私が送信しているヘッダーは次のとおりです。

 post.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
        post.addHeader("Accept", "text/html,application/xhtml xml,application/xml;q=0.9,*/*;q=0.8");

マルチフォーム ヘッダーを設定しようとしましたが、機能しません

post.addHeader("Content-type", "multipart/form-data");

私が見逃している可能性のあるものについて何かアドバイスはありますか? ありがとうございました

4

3 に答える 3

0

おそらく、各 StringBody の Content Type は ContentType.MULTIPART_FORM_DATA であってはなりません。多分それは「テキスト/プレーン」であるべきです

于 2014-07-27T22:10:31.147 に答える
0

これを試して !

        File file = new File(path);


        File image = new File("/storage/emulated/0/DCIM/100MEDIA/a_thumbnail.jpg");
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(urls[0]);
        HttpResponse response = null ;
        post.setHeader("Authorization","----------------------------");





        MultipartEntity ent = new MultipartEntity();
        try {

            ent.addPart("user_id",new StringBody("1"));
            ent.addPart("categories_id",new StringBody("3"));
            ent.addPart("tags",new StringBody("mama"));
            ent.addPart("title",new StringBody("mama"));
            ent.addPart("preview_id",new StringBody("2"));
            ent.addPart("thumb", new FileBody(image));
            ent.addPart("video", new FileBody(file));


            post.setEntity(ent);

            response = client.execute(post);

            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            answer= answer+bufferedReader.readLine();

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


        return answer;
    }
于 2014-07-30T17:55:40.370 に答える