hal*_*000 22 .net powershell http
我知道在PowerShell中构建Web客户端的一些好方法:.NET类System.Net.WebClient和System.Net.HttpWebRequest,或COM对象Msxml2.XMLHTTP.据我所知,唯一一个允许您访问数字状态代码(例如200,404)的是最后一个COM对象.我遇到的问题是我不喜欢它的工作方式,我不喜欢依赖COM对象.我也知道,由于安全漏洞等原因,微软将不时决定杀死COM对象(ActiveX kill bits).
还有其他.NET方法我错过了吗?状态代码是否是其他两个对象之一,我只是不知道如何获取它?
hal*_*000 56
使用x0n和joshua ewer的答案来完整的代码示例,我希望形式不是太糟糕:
$url = 'http://google.com'
$req = [system.Net.WebRequest]::Create($url)
try {
$res = $req.GetResponse()
}
catch [System.Net.WebException] {
$res = $_.Exception.Response
}
$res.StatusCode
#OK
[int]$res.StatusCode
#200
Run Code Online (Sandbox Code Playgroud)
x0n*_*x0n 13
使用[system.net.httpstatuscode]枚举类型.
ps> [enum]::getnames([system.net.httpstatuscode])
Continue
SwitchingProtocols
OK
Created
Accepted
NonAuthoritativeInformation
NoContent
ResetContent
...
Run Code Online (Sandbox Code Playgroud)
要获取数字代码,请转换为[int]:
ps> [int][system.net.httpstatuscode]::ok
200
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助,
-Oisin
我意识到问题的标题是关于 powershell,但并不是真正的问题在问什么?无论哪种方式...
WebClient 是一个非常笨拙的 HttpWebRequest 包装器。如果您只是执行非常简单的服务消费或发布一些 Xml,WebClient 非常棒,但代价是它并不像您希望的那样灵活。您将无法从 WebClient 获取您正在寻找的信息。
如果您需要状态代码,请从 HttpWebResponse 中获取。如果您正在使用 WebClient 执行这样的操作(只需将字符串发布到 Url):
var bytes =
System.Text.Encoding.ASCII.GetBytes("my xml");
var response =
new WebClient().UploadData("http://webservice.com", "POST", bytes);
Run Code Online (Sandbox Code Playgroud)
然后你会用 HttpWebRequest 来获取状态代码。同样的想法,只是更多的选择(因此更多的代码)。
//create a stream from whatever you want to post here
var bytes =
System.Text.Encoding.ASCII.GetBytes("my xml");
var request =
(HttpWebRequest)WebRequest.Create("http://webservice.com");
//set up your request options here (method, mime-type, length)
//write something to the request stream
var requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
var response = (HttpWebResponse)request.GetResponse();
//returns back the HttpStatusCode enumeration
var httpStatusCode = response.StatusCode;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33641 次 |
| 最近记录: |