脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - PowerShell - 浅谈powershell网页get、post请求

浅谈powershell网页get、post请求

2022-09-22 18:46z不要说话 PowerShell

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

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

POST:

  1. $url=""  #自行填写网页请求地址 
  2. $body=@{ 
  3.  "user" = $user 
  4.  "password"=$password 
  5. }| ConvertTo-Json              #具体参照接口参数修改 
  6.  
  7. Invoke-WebRequest -Uri $url -Method Post -Headers @{ "Content-Type" = "application/json"} -Body $body 

GET:

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

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

POST:

  1. $url = ''  #自行填写网页请求地址 
  2. $body=@{ 
  3.  "user" = $user 
  4.  "password"=$password 
  5. }| ConvertTo-Json    #具体参照接口参数修改 
  6.  
  7. $webRequest = [System.Net.HttpWebRequest]::Create($url) 
  8. $encodedContent = [System.Text.Encoding]::UTF8.GetBytes($body) 
  9. $webRequest.Method = "POST" 
  10. $webRequest.ReadWriteTimeout = 5000 
  11. $webRequest.KeepAlive = $false 
  12. $webRequest.ContentType =  "application/json" 
  13. $webRequest.ContentLength = $encodedContent.length 
  14. $requestStream = $webRequest.GetRequestStream() 
  15. $requestStream.Write($encodedContent, 0, $encodedContent.length) 
  16. $requestStream.Close() 
  17. [System.Net.WebResponse] $resp = $webRequest.GetResponse() 
  18. $rs = $resp.GetResponseStream() 
  19. [System.IO.StreamReader] $sr = New-Object System.IO.StreamReader -argumentList $rs 
  20. [string] $results = $sr.ReadToEnd() 

GET:

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

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

原文地址:https://blog.51cto.com/u_13504775/5702590

延伸 · 阅读

精彩推荐