资源简介
对应于相应博客的源代码,运行Demo时请先调试服务端,然后开启客户端,如果缺少HttpClient对应的dll,请通过NuGet下载
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WebAPIClient
{
public partial class FormTest : Form
{
public FormTest()
{
InitializeComponent();
}
private void Form1_Load(object sender EventArgs e)
{
}
private void btn_SelectFile_Click(object sender EventArgs e)
{
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
if (this.openFileDialog1.FileNames != null && this.openFileDialog1.FileNames.Length > 0)
{
foreach (var file in this.openFileDialog1.FileNames)
{
var idx = this.gv_File.Rows.Add();//将选择的文件路径添加到相应的DataGridView中
this.gv_File.Rows[idx].Cells[0].Value = file;
}
}
}
}
private void btRequest_Click(object sender EventArgs e)
{
this.txtResponse.Text = string.Empty;
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(“text/“ + this.cmbResponseContentType.Text.ToLower()));//设定要响应的数据格式
using (var content = new MultipartFormDataContent())//表明是通过multipart/form-data的方式上传数据
{
var formDatas = this.GetFormDataByteArrayContent(this.GetNameValueCollection(this.gv_FormData));//获取键值集合对应的ByteArrayContent集合
var files = this.GetFileByteArrayContent(this.GetHashSet(this.gv_File));//获取文件集合对应的ByteArrayContent集合
Action> act = (dataContents) =>
{//声明一个委托,该委托的作用就是将ByteArrayContent集合加入到MultipartFormDataContent中
foreach (var byteArrayContent in dataContents)
{
content.Add(byteArrayContent);
}
};
act(formDatas);//执行act
act(files);//执行act
try
{
var result = client.PostAsync(this.txtUrl.Text content).Result;//post请求
this.txtResponse.Text = result.Content.ReadAsStringAsync().Result;//将响应结果显示在文本框内
}
catch (Exception ex)
{
this.txtResponse.Text = ex.ToString();//将异常信息显示在文本框内
}
}
}
}
///
/// 获取文件集合对应的ByteArrayContent集合
///
/
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 187 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\App.config
文件 6246 2015-04-30 12:41 WebAPIFileDemo\WebAPIClient\Form1.cs
文件 14302 2015-04-30 11:43 WebAPIFileDemo\WebAPIClient\Form1.Designer.cs
文件 7174 2015-04-30 11:43 WebAPIFileDemo\WebAPIClient\Form1.resx
文件 1453 2015-04-29 22:06 WebAPIFileDemo\WebAPIClient\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 7158 2015-04-30 10:01 WebAPIFileDemo\WebAPIClient\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 0 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 726 2015-04-30 12:55 WebAPIFileDemo\WebAPIClient\obj\Debug\WebAPIClient.csproj.FileListAbsolute.txt
文件 527 2015-04-30 10:44 WebAPIFileDemo\WebAPIClient\Program.cs
文件 1366 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\Properties\AssemblyInfo.cs
文件 2876 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\Properties\Resources.Designer.cs
文件 5612 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\Properties\Resources.resx
文件 1099 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\Properties\Settings.Designer.cs
文件 249 2015-04-07 19:42 WebAPIFileDemo\WebAPIClient\Properties\Settings.settings
文件 3889 2015-04-07 19:43 WebAPIFileDemo\WebAPIClient\WebAPIClient.csproj
文件 2174 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\App_Start\BundleConfig.cs
文件 280 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\App_Start\FilterConfig.cs
文件 605 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\App_Start\RouteConfig.cs
文件 1115 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\App_Start\WebApiConfig.cs
文件 2499 2015-04-30 12:34 WebAPIFileDemo\WebAPIFileDemo\Controllers\ValuesController.cs
文件 32038 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\favicon.ico
文件 109 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\Global.asax
文件 822 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\Global.asax.cs
文件 11592 2015-04-30 10:01 WebAPIFileDemo\WebAPIFileDemo\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 0 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
文件 0 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
文件 0 2015-04-07 19:40 WebAPIFileDemo\WebAPIFileDemo\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
文件 6789 2015-04-30 12:55 WebAPIFileDemo\WebAPIFileDemo\obj\Debug\WebAPIFileDemo.csproj.FileListAbsolute.txt
............此处省略56个文件信息
评论
共有 条评论