2017-07-24 92 views
0

我使用Python的請求模塊的一些數據發佈到我公司的SharePoint網站:的Python填寫POST數據空格用「+」

response = requests.post("https//my-sharepoint-site.com", 
          data={"myPost": "this is a test"}, 
          auth=HttpNtlmAuth("\\MY_USER_NAME", MY_PASS)) 

對我公司的SharePoint網站產生後的樣子:

myPost=this+is+a+test 

我如何1)刪除「myPost =」和2)停止用'+'填充空格?

注意:我無權訪問公司的服務器端應用程序邏輯。

另一個說明:捲曲不用'+'編碼空格。結果:

curl –f –v --ntlm –u MY_USER_NAME --data 「this is a test」 https://my-sharepoint-site.com 

是:

this is a test 

回答

1

你傳遞的字典爲data參數,這意味着字典解釋爲鍵值對編碼爲application/x-url-encoded。 URL編碼(例如用於GET請求)替代+字符而不是%20,因爲這是大多數瀏覽器的行爲。

如果您想直接傳遞POST主體,則需要自己將其編碼爲字節。

就你而言,僅僅通過data="this is a test".encode("utf-8")應該給你你想要的行爲。

+0

我的應用程序拋出415錯誤,當我做數據=「這是一個測試」.encode(「utf-8」) – Brinley

+0

@Brinley:我不知道SharePoint或您的應用程序,但是你可能需要發送另一個標題。我會嘗試'Content-Type:text/plain;字符集= UTF-8'。 –