相关疑难解决方法(0)

使用RestSharp发送HTTP POST Multipart/form-data字段

我在使用RestSharp时遇到问题我需要将REST API用于我正在进行的项目.我需要发出的请求分为三部分:头API密钥,要上传的文件和一堆JSON格式的数据.API要求使用表单字段名称"data"发送数据部分.由于某种原因,这会导致问题,因为它在请求正文中命名字段"data".

我的代码如下:

var request = new RestRequest(UPLOAD_DOC_URLSEGMENT, Method.POST)
{
    RequestFormat = DataFormat.Json,
    AlwaysMultipartFormData = true,
    JsonSerializer = new RestSharpJsonDotNetSerializer(customSerializer)
};

if (doc is DocA)
    request.AddParameter("data",doc as DocA,ParameterType.RequestBody);
    //request.AddBody(doc as DocA);
else
    request.AddParameter("data", doc as DocB,ParameterType.RequestBody);
    //request.AddBody(doc as DocB);

request.AddFile("file", doc.File.FullName);
Run Code Online (Sandbox Code Playgroud)

如您所见,我试图同时使用request.AddBody(doc)方法和request.AddParameter(name, object, type)方法.它们似乎都没有正确发送数据,因为我收到服务器的响应,说明缺少必需的参数.使用fiddler,我可以看到二进制数据,但从不使用这两种方法的JSON数据.我已经浏览了RestSharp文档,但我找不到任何允许我将特定"字段"名称指定为表单数据体的"数据"的内容,这是我认为导致我遇到的问题.我在这做错了什么?

编辑:进一步检查fiddler后,它似乎没有将我的JSON数据添加到HTTP请求的主体.但是,在上传(执行命令)之前有一个断点,我可以在参数列表(和文件列表)中看到所有序列化的内容.当用Fiddler检查时,我看到文件二进制数据,然后是多部分/表格数据边界,然后什么都没有.我认为这是我的数据应该是......

c# rest json multipartform-data restsharp

18
推荐指数
1
解决办法
3万
查看次数

使用restsharp以块的形式上传文件以启用进度

我正在使用Restsharp上传文件.我需要显示进度条,但要知道它们不支持以块的形式上传.下面是上传的代码部分,如何修改它以启用块上传?它在文件Http.Synch.cs中

 private static HttpWebResponse GetRawResponse(HttpWebRequest request)
    {
        try
        {
            return (HttpWebResponse)request.GetResponse();
        }
        catch (WebException ex)
        {
            if (ex.Response is HttpWebResponse)
            {
                return ex.Response as HttpWebResponse;
            }
            throw;
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢

Sujit

restsharp

6
推荐指数
0
解决办法
1230
查看次数

标签 统计

restsharp ×2

c# ×1

json ×1

multipartform-data ×1

rest ×1