Android要求データフォーマットがJavaバックグラウンド需要フォーマットと一致しないHttpMediaTypeNotSupportedException:

1440 ワード

大神を求めて解答を手伝います:
現在appのJavaインタフェースがあり、iosエンドコールインタフェースは全く問題ありませんが、androidエンドはリクエスト体が失われたのではなくjson変換異常です.
//バックエンドにはjsonデータが必要ですが、android側から与えられたパラメータはx-www-form-urlencodedです.どうやって解決しますか?//最初のエラー:
org.springframework.web.HttpMediaTypeNotSupportedException: 
Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported


//要求ヘッダを追加してエラーを報告:
org.springframework.http.converter.HttpMessageNotReadableException: 
Required request body is missing: 
  .  .sendCode(java.util.Map 

//修正後:json変換エラー
org.springframework.http.converter.HttpMessageNotReadableException: 
JSON parse error: Unrecognized token 'phoneNumber': was expecting ('true', 'false' or 'null'); 
nested exception is com.fasterxml.jackson.core.JsonParseException: 
Unrecognized token 'phoneNumber': was expecting ('true', 'false' or 'null')
 at [Source: (PushbackInputStream); line: 1, column: 13] 

現在の問題は解決されました.
実は以上の問題のすべての原因はandroid側の要求データフォーマットが間違っている(あるいは要求データフォーマットが一致していない):
1・Headers要求パラメータContent-Type:アプリケーション/json,charset=UTF-8,Accept:jsonを設定するか
送信フォーマットと受信フォーマットの両方を設定する必要があります.
2・要求パラメータ作成beanシーケンス化;
3.POST要求データは要求体にあり、このときパラメータ送信は@Body注釈を使用すべきであり、#Fields注釈のデフォルトはx-www-form-urlencodedフォームで送信される.