powershell网页get、post 中文请求与返回

网上经常看到powershell 传输中文参数,接收中文返回问题,近几天正好遇到了,给大家分享一下。

不需要传中文,powershell原生命令样例:

POST:

$url=""  #自行填写网页请求地址
$body=@{
 "user" = $user
 "password"=$password
}| ConvertTo-Json              #具体参照接口参数修改

Invoke-WebRequest -Uri $url -Method Post -Headers @{ "Content-Type" = "application/json"} -Body $body
 

GET:

$url=""  #自行填写网页请求地址
Invoke-WebRequest -Uri $url -Method get
 

需要传中文参数或者中文返回,需要使用借助System.Net.HttpWebRequest类

POST:

$url = ''  #自行填写网页请求地址
$body=@{
 "user" = $user
 "password"=$password
}| ConvertTo-Json    #具体参照接口参数修改

$webRequest = [System.Net.HttpWebRequest]::Create($url)
$encodedContent = [System.Text.Encoding]::UTF8.GetBytes($body)
$webRequest.Method = "POST"
$webRequest.ReadWriteTimeout = 5000
$webRequest.KeepAlive = $false
$webRequest.ContentType =  "application/json"
$webRequest.ContentLength = $encodedContent.length
$requestStream = $webRequest.GetRequestStream()
$requestStream.Write($encodedContent, 0, $encodedContent.length)
$requestStream.Close()
[System.Net.WebResponse] $resp = $webRequest.GetResponse()
$rs = $resp.GetResponseStream()
[System.IO.StreamReader] $sr = New-Object System.IO.StreamReader -argumentList $rs
[string] $results = $sr.ReadToEnd()

GET:

$Url = ''  #自行填写网页请求地址
[Net.HttpWebRequest]$WebRequest = [Net.WebRequest]::Create($Url)
[Net.HttpWebResponse]$WebResponse = $WebRequest.GetResponse()
$Reader = New-Object IO.StreamReader($WebResponse.GetResponseStream())
$Response = $Reader.ReadToEnd()
$Reader.Close()
$results = $Response | ConvertFrom-Json

想详细了解的可以看一下​​https://learn.microsoft.com/zh-cn/dotnet/api/system.net.httpwebrequest?redirectedfrom=MSDN&view=net-6.0​

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值