我正处于学习阶段,我想使用httpclient将文件和数据发布到api。 我试过这个。 这是我的控制器代码
string baseUrl = ServerConfig.server_path +“/ api / Payment / AddMedicineOrder”; 字典参数=新词典();
parameters.Add("username",user.Username);
parameters.Add("FullName", FullName);
parameters.Add("Phone", Phone);
parameters.Add("CNIC", CNIC);
parameters.Add("address", address);
parameters.Add("Email", Email);
parameters.Add("dateofbirth", dateofbirth.ToShortDateString());
parameters.Add("Gender", Gender);
parameters.Add("PaymentMethod", PaymentMethod);
parameters.Add("Title", Title);
parameters.Add("PhramaList", medList);
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://localhost:44391/");
MultipartFormDataContent form = new MultipartFormDataContent();
HttpContent content = new StringContent("fileToUpload");
HttpContent DictionaryItems = new FormUrlEncodedContent(parameters);
form.Add(content, "fileToUpload");
form.Add(DictionaryItems, "medicineOrder");
var stream = PostedPrescription.InputStream;
content = new StreamContent(stream);
content.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "fileToUpload",
FileName = PostedPrescription.FileName
};
form.Add(content);
var response =await client.PostAsync("/api/Payment/AddMedicineOrder", form);
var k =response.Content.ReadAsStringAsync().Result;
如何在Web api方法中传递此信息
[HttpPost]
public async Task<API> AddMedicineOrder()//string key, [FromUri]MedicineOrder medicineOrder
{
var request = HttpContext.Current.Request;
bool SubmittedFile = (request.Files.Count != 0);
this.Request.Headers.TryGetValues("medicineOrder", out IEnumerable<string> somestring);
var k = somestring;
return OK("Success");
}
catch (Exception ex)
{
return InternalServerError("Technical Error.");
}
请帮帮我。提前致谢
答案 0 :(得分:1)
您需要支持为您的网络API添加多部分/表单数据支持。为此,您可以添加自定义媒体类型格式化程序,它将读取您的json内容以及文件内容,您可以直接将其绑定到具体模型。
答案 1 :(得分:0)
=&GT;在这里我放了一个链接,尝试这种方式它可能对你有所帮助。请看一下。
访问https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/sending-html-form-data-part-2