我有一個奇怪的問題,我在Python-2.7中創建的TCP JSON-RPC服務器。我使用下面的代碼來構建服務器:Python TCP服務器JSON錯誤的請求語法
https://github.com/joshmarshall/jsonrpclib
我正在通過同一本地網絡將客戶端與服務器進行通信。在控制檯窗口中,我可以從Python內部連接並運行鍼對服務器的命令。一切都很好。
但是,當我嘗試從移動應用程序(本例中爲iPad)發送JSON字符串時,服務器上出現錯誤。我也下載了這個工具,試圖發送JSON字符串:http://www.simplecomtools.com/productcart/pc/downloads/tcptesttool.zip,但具有相同的錯誤結果。服務器報告「錯誤的請求語法」錯誤。我嘗試了幾種不同的字符串 - 顯示的錯誤是:
192.168.1.107 - - [13/Oct/2012 09:48:17] code 400,message Bad request syntax(「{'jsonrpc':'2.0 ','method':'add','params':[3,6],'id':'8'}「) 192.168.1.107 - - [13/Oct/2012 09:48:17]」{ 'jsonrpc':'2.0','method':'add','params':[3,6],'id':'8'}「400 -
192.168.1.107 - - [13/Oct/2012年9月21日09:49:44]代碼400,錯誤的請求語法('{「jsonrpc」:「2.0」,「method」:「add」,「params」:[3,6],「id」:「8 「}') 192.168.1.107 - [13/Oct/2012 09:49:44]」{「jsonrpc」:「2.0」,「method」:「add」,「params」:[3,6], 「id」:「8」}「400 -
192.168.1.107 - - [13/Oct/2012 09:50:49] code 400,message Bad request syntax('{「jsonrpc」:「2.0」,「method」:「add」,「params」:{「x」:3, 「y」:6},「id」:「8」}') 192.168.1.107 - - [13/Oct/2012 09:50:49]「{」jsonrpc「:」2.0「,」method「:」添加「,」參數「:{」x「:3,」y「:6},」id「:」8「}」400 -
192.168.1.107 - - [13/Oct/2012 17:11 :'code'400,message Bad request syntax(「{'jsonrpc':'2.0','method':'add','params':{'x':3,'y':6},'id' :'}')') 192.168.1.107 - - [13/Oct/2012 17:11:59]「{'jsonrpc':'2.0','method':'add','params':{'x': 3,'y':6},'id':8}「400 -
我真的不知道爲什麼服務器會認爲請求語法不好,即使提出問題,我也覺得有點傻。關於我可以嘗試解決語法錯誤的任何想法?
對,這是已經試過了。正如您從問題中引用的4個示例中可以看到的,第二個和第三個示例都使用雙引號。其他想法? – Derrick
@Derrick對不起,沒有看到。第一個和第四個例子永遠無法工作,所以它們確實與眼前的問題無關。與另一個可能的罪魁禍首更新答案。 – phihag
啊,你知道嗎?你上面的建議讓我確認客戶端實際上正在發送HTTP頭 - 事實並非如此。所以我更新了客戶端,實際上做了預期的事情(發送這些頭文件),並按預期工作。感謝您的洞察力。 – Derrick