2017-03-04 8 views
1

nodeJSのAPIへのリクエストの本体にJSONオブジェクトを作成しようとしています。私は私のJSONを作成していなかったOkHttp Android post cause error JSON形式が不正です

String patientAddress = "0x83d0aa553df8bbf2c70c8250a1edbdef5be2ccbe"; 
     MediaType JSON = MediaType.parse("application/json; charset=utf-8"); 
     RequestBody body = RequestBody.create(JSON, "{patientAddress:" + patientAddress + "}"); 

     Request request = new Request.Builder() 
       .url(getString(R.string.main_url) + "/api/getPatientDetails") 
       .headers(buildStandardHeaders(Stormpath.accessToken())) 
       .post(body) 
       .build(); 

EDIT

問題ワスト:

ここ
SyntaxError: Unexpected token p in JSON at position 1 

は私が私の要求使用OkHttpClientを作る方法です:私は私のサーバー側でこのエラーを得続けますここに作業コードがあります:

String patientAddress = "0x83d0aa553df8bbf2c70c8250a1edbdef5be2ccbe"; 
     MediaType JSON = MediaType.parse("application/json; charset=utf-8"); 
     RequestBody body = RequestBody.create(JSON, "{\"patientAddress\" :\"" + patientAddress + "\"}"); 

     Request request = new Request.Builder() 
       .url(getString(R.string.main_url) + "/api/getPatientDetails") 
       .headers(buildStandardHeaders(Stormpath.accessToken())) 
       .post(body) 
       .build(); 
+0

あなたは解決策を導くように答えを受け入れることができます。 –

答えて

1

"{patientAddress:"

これは有効なJSONではありません。

キーを引用する必要があります。

"{\"patientAddress\" :\"" + patientAddress + "\"}" 

しかし、JSONオブジェクトの文字列を構築するために、適切なJSONライブラリを使用してください

JSONObject params = new JSONObject(); 
params.put("patientAddress", patientAddress); 

あなたはまた、あなたのAPI

からJavaオブジェクトを作るためにOkhttpの上にレトロフィットを使用することができます params.toString()

を要求

+0

Okhttpを改造する理由引用符を追加すると助けにならなかった –

+0

おそらくそれらを間違って追加しました。また、Gsonにアクセスできるため、コンテンツタイプを設定したり、生の文字列をJavaオブジェクトにパースする必要がなくなります。改造は、フードの下でOkhttpを使用します。 REST APIの使用法ははるかに簡単です。 –

+0

JSONの位置20で予期しないトークンxが発生しました –

関連する問題