2014-07-15 193 views
0

我正在嘗試整合Qiwi支付網關。我跟着這個API:https://ishop.qiwi.ru/docs/QIWI_Pull_API_v2.1_eng.pdfPUT請求:406返回

URL url = new URL("https://w.qiwi.com/api/v2/prv/269946/bills/64785"); 
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
connection.setRequestMethod("PUT"); 
connection.setDoOutput(true); 
connection.setDoInput(true); 
connection.setRequestProperty("Accept", "application/xml,text/xml"); 
connection.setRequestProperty("Authorization", "Basic MTIwNTQyOTU6a0ozYk1qYmRFd21lY1lHc0FTazg="); 
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); 
connection.setRequestProperty("Accept-Encoding", "gzip,deflate,sdch"); 
connection.setRequestProperty("Accept-Language", "en-US,en;q=0.8,ms;q=0.6,es;q=0.4"); 

OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream());    osw.write("user=tel%3A%2B29743543233&amount=766.90&ccy=AED&comment=PNR+%3A+33330521+User+Mobile+%3A+%2B29743543233&lifetime=2014-07-15T03%3A56%3A16&prv_name=Air+Arabia"); 
osw.flush(); 
osw.close(); 
System.err.println(connection.getResponseCode()); 

以上代碼總是返回406我無法弄清楚什麼是錯的。 請幫我這個。

謝謝

+0

不知道這是否是問題,但「application/x-www-form-urlencoded」沒有字符集參數。 –

回答

0

有一些東西錯的參數排序。這不是API中提到的順序。 我改變了順序,現在很好。

amount=100.03&ccy=USD&comment=PNR : 3333232522 User Mobile : +3762345234&lifetime=2014-07-16T04:39:57&user=tel%3A%2B79346433149&prv_name=Air Arabia 

謝謝。

0

響應代碼406指示所請求的資源是不可用的,你在發送請求可以接受的格式。嘗試省略「接受」屬性,然後看看,如果你得到不同的迴應。

你也可以閱讀有關406返回碼在這裏:http://httpwg.github.io/specs/rfc7231.html#rfc.section.6.5.6

+0

謝謝您的回覆。我嘗試刪除「接受」但響應不會改變。 我嘗試了其他堆棧溢出問題,無法解決問題。 –

+0

請避免引用過時的規格;見http://httpwg.github.io/specs/rfc7231.html#rfc.section.6.5.6 –