2014-07-24 48 views
1

我寫了下面的curl命令。使用cURL發佈數據時發生錯誤

curl -v -X POST -H 'Accept: application/json' 
-H 'Content-Type: application/json' -u username:password 
-d 'Id=5&[email protected]&OptInType=0&EmailType=0&DataFields=null&Status=0}' 
https://api.dotmailer.com/v2/contacts 

然而,當我在Powershell的運行,它返回下列錯誤

「消息」:「無法解析基於所述 內容類型\請求的主體的」 application/JSON \ 「 ERROR_BODY_DOES_NOT_MATCH_CONTENT_TYPE」}

這是冗長服務器響應

  • 主機名未在DNS高速緩存中找到
  • 試圖94.143.104.204 ...
  • 連接到api.dotmailer.com(94.143.104.204)端口443(#0)
  • 成功設置證書驗證地點:
  • 憑證檔案錯誤:C:\ Program Files文件\捲曲\ BIN \捲曲-CA-bundle.crt CApath:無
  • 的SSLv3,TLS握手,客戶問候(1):
  • 的SSLv3,TLS握手,服務器問候(2):
  • 的SSLv3,TLS握手,CERT(11):
  • 的SSLv3,TLS握手,服務器完成(14):
  • 的SSLv3,TLS握手,客戶端密鑰交換(16):
  • 的SSLv3,TLS改變密碼,客戶端你好(1):
  • 的SSLv3,TLS握手,成品(20):
  • 的SSLv3,TLS改變密碼,客戶端問候(1):
  • 的SSLv3,TLS握手,成品(20):
  • SSL使用TLSv1.0/AES128-SHA連接
  • 服務器證書:
  • 主題:C = GB; ST =英格蘭; L =倫敦; OU = DDG; O = dotMailer Ltd; 。CN = * dotmailer.com
  • 起始日期:2012-01-16 15點51分40秒GMT
  • 到期日期:2015年1月16日15點51分40秒GMT
  • 的SubjectAltName:api.dotmailer。 com匹配
  • 發行人:C = BE; O = GlobalSign nv-sa; CN = GlobalSign組織驗證CA - G2
  • SSL證書確認無誤。使用基本與用戶的 '用戶名' * POST/V2 /觸點HTTP/1.1 *授權
  • 服務器授權:基本XXXpdXNlci0zNGFmNWU0NTdmYTJAYXBpY29ubmVjdG9yLmNvbTpzaW1vbmUxMjM =
  • 的User-Agent:捲曲/ 7.37.0
  • 主持人:api.dotmailer。COM
  • 接受:應用/ JSON
  • 內容類型:應用/ JSON
  • 的Content-Length:72
  • 上傳完全發送關:72出來的72個字節
  • HTTP/1.1 400錯誤的請求
  • Cache-Control:no-cache
  • Pragma:no-cache
  • Content-Type:application/json;字符集= UTF-8
  • 到期日:-1
  • 日期:星期四,2014年7月24日8時46分46秒GMT
  • 的Content-Length:139

{ 「消息」:「無法解析請求的基礎上, 內容類型\ 「應用程序/ JSON \」 ERROR_BODY_DOES_NOT_MATCH_CONTENT_TYPE「}

連接#0到主機api.dotmailer.com原封不動主體

任何人都可以指出我正確的方向讓我的命令正確嗎? 謝謝。

回答

1

您在-d中的數據似乎不是json格式。試試jsonlint驗證json格式。或者,如果您嘗試發佈文本數據,請使用text/plain作爲Content-type。

+0

我知道。我也嘗試了JSON格式:{{「Id」:5,「Email」:「[email protected]」,「DataFields」:null,「Status」:0}'但我仍然得到與上面相同的錯誤信息。 –

+0

你還是會得到同樣的錯誤。 –

+0

是的,就像我在之前的評論中所說的那樣。 –