//HttpClient GetText
HttpClient httpClient;
protected override voidOnNavigatedTo(NavigationEventArgs e)
{
httpClient= new HttpClient();
}
protected override voidOnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
try
{
HttpResponseMessage response= await httpClient.GetAsync(resourceUri);
string responseBodyAsText =await response.Content.ReadAsStringAsync();
responseBodyAsText =responseBodyAsText.Replace("
", "\n");
}
catch(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
public void Dispose()
{
if(httpClient != null)
{
httpClient.Dispose();
httpClient = null;
}
}
private void Cancel_Click(object sender,RoutedEventArgs e)
{
httpClient.CancelPendingRequests();
}
//HttpClient GetStream
HttpClient httpClient;
protected override voidOnNavigatedTo(NavigationEventArgs e)
{
if(httpClient != null)
httpClient.Dispose();
//HttpMessageHandler: HTTP消息处理程序的基类型
HttpMessageHandler handler = new HttpClientHandler();
handler =new PlugInHandler(handler);
httpClient= new HttpClient(handler);
httpClient.DefaultRequestHeaders.UserAgent.Add(newProductInfoHeaderValue("Sample", "v8"));
}
protected override voidOnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
try
{
string resourceAddress =AddressField.Text;
HttpRequestMessage request =new HttpRequestMessage(HttpMethod.Get, resourceAddress);
HttpResponseMessage response= await httpClient.SendAsync(request,HttpCompletionOption.ResponseHeadersRead);
StringBuilder responseBody =new StringBuilder();
using (Stream responseStream= await response.Content.ReadAsStreamAsync())
{
int read = 0;
byte[] responseBytes = new byte[1000];
do
{
read =await responseStream.ReadAsync(responseBytes, 0,responseBytes.Length);//读取操作: responseStream ->responseBytes
responseBody.AppendFormat("流中读取的字节数: {0} \n", read);
IBufferresponseBuffer =CryptographicBuffer.CreateFromByteArray(responseBytes);
responseBody.AppendFormat(CryptographicBuffer.EncodeToHexString(responseBuffer)+ Environment.NewLine);
} while (read != 0);
}
}
catch(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
public classPlugInHandler : MessageProcessingHandler
{
public PlugInHandler(HttpMessageHandlerinnerHandler)
:base(innerHandler)
{
}
protected override HttpRequestMessageProcessRequest(HttpRequestMessage request, CancellationTokencancellationToken)
{
if(request.Method == HttpMethod.Get)
request.Headers.Add("Custom-Header", "CustomRequestValue");
returnrequest;
}
protected override HttpResponseMessageProcessResponse(HttpResponseMessage response, CancellationTokencancellationToken)
{
if(response.RequestMessage.Method == HttpMethod.Get)
response.Headers.Add("Custom-Header", "CustomResponseValue");
returnresponse;
}
}
//HttpClient GetXML
HttpClient httpClient;
protected override voidOnNavigatedTo(NavigationEventArgs e)
{
if(httpClient != null)
httpClient.Dispose();
//HttpMessageHandler: HTTP消息处理程序的基类型
HttpMessageHandler handler = new HttpClientHandler();
handler =new PlugInHandler(handler);
httpClient= new HttpClient(handler);
httpClient.DefaultRequestHeaders.UserAgent.Add(newProductInfoHeaderValue("Sample", "v8"));
}
protected override voidOnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
try
{
string resourceAddress =AddressField.Text;
HttpResponseMessage response= await httpClient.GetAsync(resourceAddress);
response.EnsureSuccessStatusCode();
//字符串转换XML元素
XElement element =XElement.Parse(await response.Content.ReadAsStringAsync());
this.msiListBox.ItemsSource=
(from c in element.Elements("item")
selectc.Attribute("name").Value
);
}
catch(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
//HttpClient PostText
HttpClient httpClient;
protected override voidOnNavigatedTo(NavigationEventArgs e)
{
if(httpClient != null)
httpClient.Dispose();
//HttpMessageHandler: HTTP消息处理程序的基类型
HttpMessageHandler handler = new HttpClientHandler();
handler =new PlugInHandler(handler);
httpClient= new HttpClient(handler);
httpClient.DefaultRequestHeaders.UserAgent.Add(newProductInfoHeaderValue("Sample", "v8"));
}
protected override voidOnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
if(httpClient.BaseAddress == null)
{
Uri baseAddress = newUri(BaseAddress.Text);
httpClient.BaseAddress =baseAddress;
}
try
{
string resourceAddress =AddressField.Text;
HttpResponseMessage response= await httpClient.PostAsync(resourceAddress,newStringContent(this.RequestBodyField.Text));
string responseBodyAsText = awaitresponse.Content.ReadAsStringAsync();
responseBodyAsText =responseBodyAsText.Replace("
", "\n"); // Insert new lines
}
catch(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
//HttpClient PostStream
HttpClient httpClient;
protected override voidOnNavigatedTo(NavigationEventArgs e)
{
if(httpClient != null)
httpClient.Dispose();
//HttpMessageHandler: HTTP消息处理程序的基类型
HttpMessageHandler handler = new HttpClientHandler();
handler =new PlugInHandler(handler);
httpClient= new HttpClient(handler);
httpClient.DefaultRequestHeaders.UserAgent.Add(newProductInfoHeaderValue("Sample", "v8"));
}
protected override voidOnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
try
{
string resourceAddress =AddressField.Text.Trim();
HttpRequestMessage request =new HttpRequestMessage(HttpMethod.Post, resourceAddress);
StreamContent streamContent =new StreamContent(stream);
request.Content =streamContent;
request.Headers.TransferEncodingChunked = true; // Assume we don'tknow the content length
HttpResponseMessage response= await httpClient.SendAsync(request);
string responseBodyAsText =await response.Content.ReadAsStringAsync();
responseBodyAsText =responseBodyAsText.Replace("
", "\n");
}
catch(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
//HttpClient PostMultipartFormDataContent
HttpClient httpClient;
protected override voidOnNavigatedTo(NavigationEventArgs e)
{
if(httpClient != null)
httpClient.Dispose();
//HttpMessageHandler: HTTP消息处理程序的基类型
HttpMessageHandler handler = new HttpClientHandler();
handler =new PlugInHandler(handler);
httpClient= new HttpClient(handler);
httpClient.DefaultRequestHeaders.UserAgent.Add(newProductInfoHeaderValue("Sample", "v8"));
}
protected override voidOnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
try
{
MultipartFormDataContent form= new MultipartFormDataContent();
form.Add(newStringContent(RequestBodyField.Text), "Data");
string resourceAddress =AddressField.Text.Trim();
HttpResponseMessage response= await httpClient.PostAsync(resourceAddress, form);
string responseBodyAsText =await response.Content.ReadAsStringAsync();
responseBodyAsText =responseBodyAsText.Replace("
", "\n");
}
catch(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}