【发布时间】:2014-05-12 14:35:30
【问题描述】:
我有一个很好用的 curl 命令,我正在尝试将其转换为 PowerShell Invoke-WebRequest 调用。
这是带有多部分 POST 数据的 工作 curl:
curl -X POST "http://domain.com/admin/batchOrder/processBatch"
-F "ordersFile=@c:\temp\Sample_Auto_Order_Input_File.xml"
-F "psid=3002010250764"
-F "recipients[0]=astraljack@example.com"
这就是我试图通过Invoke-WebRequest 实现的地方。根据我读过的内容,我需要创建一个名称-值对的哈希表。我觉得我应该像上面的多部分 POST 数据一样创建哈希表。
$form.clear()
$form.Add("ordersFile", "c:\temp\Sample_Auto_Order_Input_File.xml")
$form.Add("psid", "3002010250764")
$form.Add("recipients[0]", "astraljack@example.com")
$form
然后我可以调用 Invoke-WebRequest。
Invoke-WebRequest http://domain.com/admin/batchOrder/processBatch -Body $form -Method Post
这会失败并返回 400 错误请求。需要明确的是,我从来没有让这个 Invoke-WebRequest 工作,所以我可能会离开这里。我什至不确定在哪里可以找到更好的错误消息。
如果有帮助,异常的内容是
IsMutuallyAuthenticated : False
Cookies : {}
Headers : {Connection, Transfer-Encoding, Content-Type, Date...}
SupportsHeaders : True
ContentLength : -1
ContentEncoding :
ContentType : application/json;charset=UTF-8
CharacterSet : UTF-8
Server : Apache
LastModified : 5/12/2014 10:23:19 AM
StatusCode : BadRequest
StatusDescription : Bad Request
ProtocolVersion : 1.1
ResponseUri : http://domain.com/admin/batchOrder/processBatch
Method : POST
IsFromCache : False
【问题讨论】:
标签: powershell curl