在delphi xe下調用百度的翻譯api,百度支持get與post兩種方法。想着get效率更高,於是打算數據量小的時候用get,要翻譯的數據量大時用post提交。
要提交的數據 q=httpEncode(UTF8Encode(memo1.Text))
在get模式下運行正常。但post模式下總是提示簽名錯誤。
全面檢查代碼發現沒有問題。想來會不會是post的時候nethttpclient組件自動把參數又url編碼了一次,導致服務器端解碼的數據不對?
於是在post時取消 httpEncode 函數,然後運行正常了。