2017-12-28 28 views
0
私は郵便配達で、私のAPIをテストし、それがJSONを返す

使用してレトロフィット+ OkHttp + Gson APIが返すHTMLけれども郵便配達リターンJSON

ちょうど平野は、APIを取得

BASEURL/ECOM-サービス/ API /モバイル/

が、Android上で今後のタスク/ユーザー/ tokenhere_ は/

@GET("mobile/tasks/user/{id}/upcoming") 
    fun jobList(@Path("id") id: String): retrofit2.Call<Job> 

これは、HTMLを返し

これを返すのonError:

java.lang.IllegalStateException:期待BEGIN_OBJECTをしかし、これはコール

fun fetchData() { 
    apiService.jobList(getUserId()).enqueue(object : retrofit2.Callback<Job>{ 
     override fun onFailure(call: Call<Job>?, t: Throwable?) { 
     Timber.v(t!!.message.toString()) 
     } 
     override fun onResponse(call: Call<Job>?, response: Response<Job>?) { 
      Timber.v(response!!.body().toString()) 
     } 
    }) 

仕事=データ

ある行1列1つのパス$

でSTRINGました

json:

{ 
    "type": "success", 
    "text": "200", 
    "data": [ 
    { 
     "requestId": "5a31fc2b9af83128136f8fb3", 
     "taskDetailRequestId": null, 
     "clientEmail": null, 
     "imageBase64": null, 
     "imageLogoWidth": 0, 
     "imageLogoHeight": 0, 
     "additionalEmails": [], 
     "clientId": "5891d6b01d58301538b578ea", 
     "clientServiceAddress": { 
     "id": "5891d6b01d58301538b578eb", 
     "_refs": null, 
     "name": "tony chew", 
     "address1": null, 
     "address2": null, 
     "pinCode": "123123", 
     "createdUserId": null, 
     "lastUpdatedUserId": null, 
     "latitude": 0, 
     "longitude": 0, 
     "organizationId": null, 
     "addressType": null 
     }, 
     "startDate": 1513311600000, 
     "endDate": 1513312500000, 
     "userRegId": "5891d7521d58301538b578fd", 
     "requestDate": 1513225200000, 
     "serviceName": "Service 1 SImple", 
     "serviceRequest": null, 
     "userTaskDetailsId": "5a31fc319af83128136f8fb9", 
     "fromSubclient": false, 
     "requestStatus": "ASSIGNED", 
     "serviceRequestType": "SERVICE", 
     "contractPayments": null 
    } 
    ] 
} 

Job.kt

data class Job(
    @Expose @SerializedName("type") val type: String, //success 
    @Expose @SerializedName("text") val text: String, //200 
    @Expose @SerializedName("data") val data: List<Data> 
) 
+0

期待されるJSONを追加し、 'job'の – Pelocho

+0

@Pelochoジョブあなたは、文字列を取得 –

+0

タイプ、テキスト、およびデータ・フィールドが含まれていますが、' JSONObject' –

答えて

0

は、おそらくあなたは、ヘッダーに

http://square.github.io/retrofit/#api-declaration

@Headers("Accept: application/json") 
@GET("mobile/tasks/user/{id}/upcoming") 
    fun jobList(@Path("id") id: String): retrofit2.Call<Job> 

を受け入れる提供する必要がある。しかし、それはあなたの要求が認証のような他の理由のために失敗していると、どこかにリダイレクト取得することも可能です。最初に受け入れヘッダを試してください。しかし、あなたはあなたの質問に明確な答えを与えるのに十分な詳細を提供していません。

+0

を必要とするの定義は、このヘッダと異なる点である:{「受け入れ」: " */* "} –

+0

あなたの質問は、再現性がありません。 –

関連する問題