//HttpClient GetText
HttpClient httpClient;
protected override void
OnNavigatedTo(NavigationEventArgs e)
{
httpClient
= new HttpClient();
}
protected override void
OnNavigatedFrom(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 void
OnNavigatedTo(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(new
ProductInfoHeaderValue("Sample", "v8"));
}
protected override void
OnNavigatedFrom(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);
IBuffer
responseBuffer =
CryptographicBuffer.CreateFromByteArray(responseBytes);
responseBody.AppendFormat(CryptographicBuffer.EncodeToHexString(responseBuffer)
+ Environment.NewLine);
} while (read != 0);
}
}
catch
(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
public class
PlugInHandler : MessageProcessingHandler
{
public PlugInHandler(HttpMessageHandler
innerHandler)
:
base(innerHandler)
{
}
protected override HttpRequestMessage
ProcessRequest(HttpRequestMessage request, CancellationToken
cancellationToken)
{
if
(request.Method == HttpMethod.Get)
request.Headers.Add("Custom-Header", "CustomRequestValue");
return
request;
}
protected override HttpResponseMessage
ProcessResponse(HttpResponseMessage response, CancellationToken
cancellationToken)
{
if
(response.RequestMessage.Method == HttpMethod.Get)
response.Headers.Add("Custom-Header", "CustomResponseValue");
return
response;
}
}
//HttpClient GetXML
HttpClient httpClient;
protected override void
OnNavigatedTo(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(new
ProductInfoHeaderValue("Sample", "v8"));
}
protected override void
OnNavigatedFrom(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")
select
c.Attribute("name").Value
);
}
catch
(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
//HttpClient PostText
HttpClient httpClient;
protected override void
OnNavigatedTo(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(new
ProductInfoHeaderValue("Sample", "v8"));
}
protected override void
OnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
if
(httpClient.BaseAddress == null)
{
Uri baseAddress = new
Uri(BaseAddress.Text);
httpClient.BaseAddress =
baseAddress;
}
try
{
string resourceAddress =
AddressField.Text;
HttpResponseMessage response
= await httpClient.PostAsync(resourceAddress,new
StringContent(this.RequestBodyField.Text));
string responseBodyAsText = await
response.Content.ReadAsStringAsync();
responseBodyAsText =
responseBodyAsText.Replace("
", "\n"); // Insert new lines
}
catch
(HttpRequestException hre)
{
Debug.WriteLine(hre.Message);
}
//HttpClient PostStream
HttpClient httpClient;
protected override void
OnNavigatedTo(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(new
ProductInfoHeaderValue("Sample", "v8"));
}
protected override void
OnNavigatedFrom(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't
know 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 void
OnNavigatedTo(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(new
ProductInfoHeaderValue("Sample", "v8"));
}
protected override void
OnNavigatedFrom(NavigationEventArgs e)
{
Dispose();
}
try
{
MultipartFormDataContent form
= new MultipartFormDataContent();
form.Add(new
StringContent(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);
}