0

json.put(); を使用して、json から出力の下の同等の php 形式にデータを送信しようとしています。

Array
    (
        [node] => Array
            (
                [name] => admin
                [type] => mobile_content
                [language] => und
                [title] => re resss re@fffd.com
                [field_one] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => re
                                    )

                            )

                    )

                [field_prenom] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => resss
                                    )

                            )

                    )

                [field_addr] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => re@fffd.com
                                    )

                            )

                    )

                [field_email] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => 01/01/1913
                                    )

                            )

                    )

                [field_collectif] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => 1
                                    )

                            )

                    )

                [field_bach] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => 0
                                    )

                            )

                    )

                [field_mc_rec] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [value] => 1
                                    )

                            )

                    )

                [field_photo] => Array
                    (
                        [und] => Array
                            (
                                [0] => Array
                                    (
                                        [fid] => 1778
                                    )

                            )

                    )

            )

    )

私の問題は、フォーマットを正しく取得できないことです。

i created my json object



        try {


            JSONObject json = new JSONObject();

次に、ノードを使用して配置します

json.put("node[type]","type"); 

最後にjson出力をに送信します

DefaultHttpClient httpClient = new DefaultHttpClient();
    ResponseHandler<String> resonseHandler = new BasicResponseHandler();

    HttpPost postMethod = new HttpPost(path);

    String authorizationString = "Basic " + Base64.encodeToString(
            ("uname" + ":" + "pword").getBytes(),
            Base64.NO_WRAP);

    postMethod.setHeader("Authorization", authorizationString);
    postMethod.setHeader("Content-Type","application/x-www-form-urlencoded");       
    postMethod.setHeader("Accept", "application/json");

    postMethod.setEntity(new ByteArrayEntity(params.toString().getBytes("UTF8")));

    String response = httpClient.execute(postMethod,resonseHandler);

    if (response.equals("[]")) //empty
        return null;
    else
    {
        System.out.println("response :" + response);
        JSONObject jObject=new JSONObject(response);

        return jObject;
    }

エラーログが表示されます

org.apache.http.client.HttpResponseException: Not Acceptable: Node type is required

しかし、サーバー側ではログは表示されません。json オブジェクトが送信されていないことを意味します。これは奇妙です。私はdrupalに送信していることに注意してください。助けてください。これは、テキスト形式のjsonをサーバーに送信する正しい方法ですか?

4

2 に答える 2

0

私の場合、そうします

StringEntity se = new StringEntity(postObject
                                .toString(), HTTP.UTF_8);
                        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,
                                "application/json"));
                        request.setEntity(se);
                        HttpResponse response = httpclient.execute(request);

そして、応答エンティティを読み取ります。しかし、私は独自のサーバー側の php API を作成しました。

同様の質問もチェックしてください: https://stackoverflow.com/questions/17031090/how-to-prevent-http-406-status-code-error-from-server

于 2013-06-12T18:07:36.797 に答える
0

数日前に同様の問題がありました。ノードを作成する場合、タイプとタイトルはノードを作成するための必須フィールドです。あなたが持っているエラーは、「タイプ」が提供されていないことを示しています。投稿しようとしている JSON を出力し、タイプ フィールドが次のようになっていることを確認します。

{"type":"mobile_content"}

また、大文字と小文字が区別されるため、スペルミスや大文字がないことを確認してください。タイトルも同じようにします。

于 2013-06-12T18:07:52.137 に答える