使用HttpPost上传文档到服务器

本文关键字:服务器 文档 HttpPost 使用 | 更新日期: 2023-09-27 18:13:48

应用程序"A"需要使用POST将单词文件[作为字节数组]上传到外部应用程序。

文件内容应作为命名参数添加到请求体中,并且必须发出POST请求才能上传文件。

我有一个示例代码,但在java。我想写一个等价的c#代码。但是在c#中,找不到类似multiparentity的对象。

java代码片段:
String restURL = HOSTURL + "/rest/upload/0b002f4780293c18";        
String fileName = "testRestUploadByFolderID" + Calendar.getInstance().getTimeInMillis() + ".txt";        
File testFile = createNewFile("C:/Temp/rest/" + fileName);        
FileBody content = new FileBody(testFile, "application/octet-stream");        
System.out.println(" File Name : " + content.getFilename() + " ... "                +     content.getTransferEncoding());        
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);        
reqEntity.addPart("filename", new StringBody(fileName));        
reqEntity.addPart("uploadfile", content);        
HttpPost httpPost = new HttpPost(restURL);        
httpPost.addHeader("Accept", "application/json");        
httpPost.setEntity(reqEntity);                 
// Post the request        
String response = httpclient.execute(httpPost, new DefaultResponseHandler());

你能不能贴一些链接,解释一下如何在c#中制作命名参数来上传一个fileContent

谢谢。

使用HttpPost上传文档到服务器

如果你正在寻找一个多部分内容的帖子,也许这可以帮助:

注意:

这是。net 4.5的异步方式,但你也可以在。net 4中使用这个解决方案,安装一些Nuget包:

  • https://nuget.org/packages/Microsoft.Bcl.Build
  • http://nuget.org/packages/Microsoft.Net.Http
代码:

using (HttpClient httpClient = new HttpClient())
using (var multiPartContent = new MultipartFormDataContent())
{
     httpClient.BaseAddress = new Uri(BaseAddress);
     var fileContent = new ByteArrayContent(*filebytes*);
     //Create content header
     fileContent.Headers.ContentDisposition = new ontentDispositionHeaderValue("attachment")
                {
                    FileName = *fileName*
                };
       //Add file to the multipart request
       multiPartContent.Add(fileContent);
       //Add any other file?
       ...

      //Post it
      HttpResponseMessage response = await httpClient.PostAsync("hostURL", multiPartContent);
 }

在我看来这是。net上最干净的方式,忘记那些肮脏的httprequest