2017-04-02 63 views
1

我得到使用Python通過執行以下代碼HTTP響應:爲什麼http響應與站點和代碼輸出不同?

conn = httplib.HTTPSConnection('westus.api.cognitive.microsoft.com') 

conn.request("GET", "/something/somethig") 
response = conn.getresponse() 
#data = response.read() 
data =json.load(response) 
print(data) 

結果表明API的結果列表。

但他們是從被執行的一個,當我手動訪問westus.api.cognitive.microsoft.com/something/something網站不同。

有人能告訴我這裏有什麼問題?

+0

'httplib'不評估JavaScript –

回答

0

有很多東西都是在一個腳本的請求,並在瀏覽器的請求之間的不同。首先,你的腳本不會執行頁面上的任何關聯的JavaScript。其次,http請求的頭部包含了請求客戶端的詳細信息。

例如,對於一個REST接口中,服務器可以返回最清楚JSON到一個應用程序的請求以及用於一個瀏覽器請求返回一個格式化的頁面。

在Chrome中,你可以用「...‘打開開發人員工具 - >’更多工具‘ - >’開發者工具」,並與開放,您可以打開所有請求,看看標題:

Chrome view of request headers

Firefox在查看標題時有類似的功能。點擊漢堡包 - >「開發者」 - >「Web控制檯」。在「網絡」下,您可以篩選請求。點擊請求查看詳細信息。

enter image description here

對於POST命令,也看請求的主體。

最後,上個星期,我試圖在Java中自動執行一個POST命令,而且我在這方面遇到了一些困難。一位同事是能夠使與curl命令調用,這給了我有關的關鍵參數足夠的線索。所以,我建議嘗試curl它可以幫助防止意外的人區分開的關鍵參數,或者至少看看從另一個角度的問題。

+0

但是當我給出一個輸入時,響應是不同的。在網頁中,它輸出一個列表,其中有一個特定數組,其中填充了項目,而在腳本輸出中,特定數組是空的。我不認爲這與格式有關。 –

+0

將您的應用程序請求記錄到控制檯,並使用瀏覽器中的開發人員工具查看瀏覽器請求。 –

+0

另外,如果您有'curl'命令可用,請嘗試使用相同的請求。 –

相關問題