私はこのURLにPATCH要求を行う。この方法があります:BasicNetwork.performRequest:「URL」のために予期しない応答コード400 - バレーボールPATCHリクエスト
https://username.visualstudio.com/DefaultCollection/_apis/wit/workitems/8?api-version=1.0
は、このメソッドは何をするん:それは更新されますマイクロソフトのVisual Studioで、ID 8を持っているworkItem`s System.Title、 - のTeam Foundation Serverの
public void testPostVolley(String url) {
/*Post data*/
JSONArray jsonBody = new JSONArray();
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("op","replace");
jsonObject.put("path","/fields/System.Title");
jsonObject.put("value","Welcome to the jungle");
jsonBody.put(jsonObject);
} catch (JSONException e) {
e.printStackTrace();
}
Log.d("JSON Array " , String.valueOf(jsonBody));
JsonArrayRequest postRequest = new JsonArrayRequest(Request.Method.PATCH, url,
jsonBody,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.d("Response Post Request", response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Handle Error
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", MainRecyclerListView.TOKEN);
headers.put("Content-Type", "application/json-patch+json");
return headers;
}
};
queue.add(postRequest);
}
}
私はPOSTMANワットで試してみました同じヘッダーと同じボディとそれは動作しますが、Androidアプリでは私はこの応答を得ています:
07-06 13:05:49.253 2599-11381/ro.webivo.pockettask E/Volley:[209] BasicNetwork.performRequest:
7月6日13:05:49.017 2599から2599/ro.webivo.pockettask D Iはまた、送信本体I`mにログインしhttps://username.visualstudio.com/DefaultCollection/_apis/wit/workitems/8?api-version=1.0
ための予期しない応答コード400は、この一つであります/ JSON配列:[{"op": "replace"、 "path": "/ fields/System.Title"、 "value": "ジャングルへようこそ"}]
PATCHの公式APIリクエストがありますここ:
https://www.visualstudio.com/en-us/docs/integrate/api/wit/work-items
あなたは私を助けていただけますか?これはバレー問題ですか?
は、私は私の問題への解決策を見つけた検索の2日後、あなた
VSTS Rest APIから「400 Bad Request」を受け取ったときに、応答本体にエラーメッセージが表示されます。本体メッセージを確認して共有できますか? AndroidのVolleyに関する似たような質問:http://salesforce.stackexchange.com/questions/50382/requestforupdate-always-returns-400 –
VolleyErrorレスポンスのエラーメッセージは、私があなたに与えたものです。エラーレスポンスをカスタマイズする方法を知っていますか? – dragosiv
私はPOSTにRequest.Methodを変更し、headers.put( "X-HTTP-Method-Override"、 "PATCH");のような異なるヘッダーを追加しようとしましたが、今回はVSSからいくつかのJSONを取得していましたContent-Type of application/json-patch + jsonのみを受け入れるサービス。私はそれを変更しましたが、私は再び400と何も答えません。私はerror.networkresponse.dataを記録しようとしましたが、それはnullになります。何か案が? – dragosiv