java 设置contenttype,如何设置RestRequest的Content-Type头?

I have a web service in a RESTful web server (java) which consumes media of type MULTIPART_FORM_DATA and produces APPLICATION_JSON. I'm working on a REST client (C#) and using this web service. I'm using RestSharp as the REST client. My code goes as follows:

RestRequest request = new RestRequest("addDelivery", Method.POST);

request.AddParameter("sessionId", this.sessionId);

request.AddParameter("deliveryTo", DeliveryTo);

request.AddParameter("deliveryName", DeliveryName);

if (fileList.Count() > 0) // If fileList is not empty

{

// Adds all the files to request

foreach (MyFile myFile in fileList)

{

request.AddFile(myFile.fileName, myFile.filePath);

}

}

It works fine as long as I provide a file(s). If a file isn't provided (fileList is empty) I'm getting HTTP Status 415 - Unsupported Media Type. I think as I'm not providing any file the Content-Type is automatically changed to some type other than multipart/form-data. But the web service consumes MULTIPART_FORM_DATA and maybe that's why getting this error. I've tried adding the following code segment but getting the same error:

request.AddHeader("Content-Type", "multipart/form-data");

Note that this action(sending request without files) can be performed successfully from other clients (java, ios)

解决方案

I think you want this:

request.AlwaysMultipartFormData = true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值