![](/img/trans.png)
[英]how to read only headers from response and cancel all the rest using c#?
[英]How to read response headers in C#?
我已經聲明了一個繼承自WebClient的類ClientClass。 我要使用此類來定義HttpWebRequest對象,因為我想將SSL證書與客戶端身份驗證請求一起傳遞。
public class ClientClass : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request = (HttpWebRequest)base.GetWebRequest(address);
request.ClientCertificates.Add(GetCertificate());
return request;
}
private static X509Certificate2 GetCertificate()
{
string certificateThumbprint = AADHelper.DecryptConfigurationSetting(ConfigHelper.CertificateThumbprint);
string thumbprint = certificateThumbprint;
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
List<X509Certificate2> list = store.Certificates.Cast<X509Certificate2>().ToList();
X509Certificate2 clientCertificate = list.Find(c => c.Thumbprint != null && c.Thumbprint.Equals(thumbprint, StringComparison.InvariantCultureIgnoreCase));
return clientCertificate;
}
}
使用WebClient類的UploadData方法,我能夠發送POST請求並獲取響應字符串。 但是我也想同時接收響應頭和字符串。 我考慮過使用HttpWebResponse進行響應,但是我不確定如何發送請求。
我發送POST請求的代碼如下:
using (var client = new ClientClass())
{
client.Headers.Add("content-type", "application/json");
client.Headers.Add("x-ms-tracking-id", TrackingId.ToString());
string rawResponse;
rawResponse = Encoding.ASCII.GetString(client.UploadData(Url, "POST", Encoding.Default.GetBytes(jsonString))); dataAccessLayer.InsertKeyReplacementKFSAudit(keyReplacementID, TrackingId, jsonString, rawResponse, request.User, startTime, endTime);
}
您能幫助我如何讀取響應標頭嗎? 提前致謝。
您可以使用client.ResponseHeaders
檢索響應頭。
try
{
rawResponse = Encoding.ASCII.GetString(client.UploadData(Url, "POST", Encoding.Default.GetBytes(jsonString)));
var responseHeaders = client.ResponseHeaders;
}
catch (WebException wex) // To handle error
{
// wex.Response.Headers // You can retrieve the headers
//((HttpWebResponse)wex.Response).StatusCode //You can handle StatusCode like this;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.