Tag: multipartform data

c#multipart / form-data以编程方式提交

所以遇到了一个小问题。 我创建了一个小应用程序来自动化一个网站上的表单提交。 但糟糕的是,他们正在使用multipart / form-data。 没有文件只上传一些文本字段用于提交。 当然这样做就失败了。 string postData1 = “firstfield=”+firststring+”secondfield=”+secondstring; 所以我的问题是如何将这些表单字段以多部分forms发布? 在php中发布像数组一样: $postdata = array(‘firstfield’ => $firststring, ‘secondfield’ => $secondstring); 工作并传递表单但似乎无法使用c# 有什么建议? 数据提交通过3页(基本screenscrape)登录/ part1 / part2 到目前为止,我可以成功登录并发布part1(使用普通应用程序/ x-www-form-urlencoded表单) 但是当生病时尝试发布多部分表单时,它会失败并将我发回给part1。 所以也许我的代码错了,但这里是: string password = “password”; string username = “username”; string link = “http://somelink.com/”; string text = “Blah Blah some text here”; string title = “Blah […]

如何从C#提交multipart / form-data HTTP POST请求

使用C#中的multipart / form-data内容类型提交HTTP POST请求的最简单方法是什么? 必须有一个比建立我自己的请求更好的方法。 我问的原因是使用这个api将照片上传到Flickr: http://www.flickr.com/services/api/upload.api.html

使用MultipartFormDataContent生成错误的Content-Type标头

我有以下代码: private static string boundary = “—-CustomBoundary” + DateTime.Now.Ticks.ToString(“x”); private static async Task PostTest() { string servResp = “”; using (var content = new MultipartFormDataContent(boundary)) { content.Add(new StringContent(“105212”), “case-id”); content.Add(new StringContent(“1/14/2014”), “dateFrom”); content.Add(new StringContent(“1/15/2014”), “dateTo”); HttpClientHandler handler = new HttpClientHandler(); cookieContainer = new CookieContainer(); handler.CookieContainer = cookieContainer; HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, “http://somewebsite.com/form”); request.Headers.ExpectContinue = […]

使用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); 如您所见,我试图同时使用request.AddBody(doc)方法和request.AddParameter(name, object, type)方法。 它们似乎都没有正确发送数据,因为我收到服务器的响应,说明缺少必需的参数。 使用fiddler我可以看到二进制数据,但从来没有使用这两种方法的JSON数据。 我已经浏览了RestSharp文档,但我找不到任何允许我为表单数据体指定特定“字段”名称作为“数据”的内容,这是我认为导致我遇到的问题。 我在这做错了什么? 编辑:进一步检查fiddler后,它似乎没有将我的JSON数据添加到HTTP请求的主体。 但是,在上传(执行命令)之前有一个断点,我可以在参数列表(和文件列表)中看到所有序列化的内容。 当用Fiddler检查时,我看到文件二进制数据,然后是多部分/表格数据边界,然后什么都没有。 我认为这是我的数据应该是…