- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
有人要求我在 C# 中执行以下操作:
/**
* 1. Create a MultipartPostMethod
* 2. Construct the web URL to connect to the SDP Server
* 3. Add the filename to be attached as a parameter to the MultipartPostMethod with parameter name "filename"
* 4. Execute the MultipartPostMethod
* 5. Receive and process the response as required
* /
我写了一些没有错误的代码,但是没有附加文件。
谁能看看我的 C# 代码,看看我是否写错了代码?
这是我的代码:
var client = new HttpClient();
const string weblinkUrl = "http://testserver.com/attach?";
var method = new MultipartFormDataContent();
const string fileName = "C:\file.txt";
var streamContent = new StreamContent(File.Open(fileName, FileMode.Open));
method.Add(streamContent, "filename");
var result = client.PostAsync(weblinkUrl, method);
MessageBox.Show(result.Result.ToString());
最佳答案
在 C# 中发布 MultipartFormDataContent 很简单,但第一次可能会感到困惑。这是在发布 .png .txt 等时对我有用的代码。
// 2. Create the url
string url = "https://myurl.com/api/...";
string filename = "myFile.png";
// In my case this is the JSON that will be returned from the post
string result = "";
// 1. Create a MultipartPostMethod
// "NKdKd9Yk" is the boundary parameter
using (var formContent = new MultipartFormDataContent("NKdKd9Yk"))
{
formContent.Headers.ContentType.MediaType = "multipart/form-data";
// 3. Add the filename C:\\... + fileName is the path your file
Stream fileStream = System.IO.File.OpenRead("C:\\Users\\username\\Pictures\\" + fileName);
formContent.Add(new StreamContent(fileStream), fileName, fileName);
using (var client = new HttpClient())
{
// Bearer Token header if needed
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + _bearerToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("multipart/form-data"));
try
{
// 4.. Execute the MultipartPostMethod
var message = await client.PostAsync(url, formContent);
// 5.a Receive the response
result = await message.Content.ReadAsStringAsync();
}
catch (Exception ex)
{
// Do what you want if it fails.
throw ex;
}
}
}
// 5.b Process the reponse Get a usable object from the JSON that is returned
MyObject myObject = JsonConvert.DeserializeObject<MyObject>(result);
在我的例子中,我需要在对象发布后对其执行一些操作,因此我使用 JsonConvert 将其转换为该对象。
关于c# - Http MultipartFormDataContent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319886/
我正在尝试将文件和一些键值对上传到服务器。 服务器的 IT 人员告诉我“当我们的服务器收到请求时,文件显示得很好,但是您的键值对中的任何数据都没有显示在请求中(因为它是由 ASP.Net 解析的)。我
我正在编写一个 Web API 服务,我想在其中接受一个文件(图像)和一个包含有关图像的关键信息的序列化对象 (JSON)。图像部分没有问题,但是当我添加包含反序列化对象的字符串内容时,我在尝试确定哪
我正在寻找一种在一个请求中发送模型和图像的方法。我试图从 body 发送我的模型,但我不知道如何发送文件。除了在不同的文件中发送图像和模型之外,还有其他方法吗? 这是来 self 的 API 的 PO
有人要求我在 C# 中执行以下操作: /** * 1. Create a MultipartPostMethod * 2. Construct the web URL to connect to th
我正在使用 MultipartFormDataContent 将文件上传到 rest API。这很好用,但我的问题集中在使用 Add(...) 方法包含文件内容的正确方法上。目前我正在这样做: str
有没有办法获取 MultipartFormDataContent 的字符串表示形式以进行调试? 我已经尝试过 var x = multipart.ToString(); 但它返回了 System.Ne
我正在尝试在真实案例场景中发布 MultipartFormDataContent,数据内容对象可以包含从简单字符串到视频文件的任何内容,我在那里使用序列化对象,这只是一个概念证明。 另外我想指出,使用
我正在使用此代码上传多个文件并且运行良好。它使用现代 httpclient 库。 public async Task PostImages (int platform, string url, Lis
考虑下面的这个小代码: var client = new HttpClient(); var multiForm = new MultipartFormDataContent(); var str =
有一个允许用户上传文件的表单。这里没什么好看的。文件被 Controller 捕获为 HttpPostedFileBase。 然后从 Controller 将 HttpPostedFileBase 发
我有一个 WebAPI 服务,它使用 读取包括文件数据在内的发布数据 HttpContext.Request as key value pairs HttpContext.Current.Reques
我有这个遗留的 C# 代码(我不懂 C#),我需要用 Javascript 编写相同的功能(我非常了解 JS)。所以 C# 代码是: static JavaScriptSerializer seria
formData.Add(sJobId,"job_id");正在向服务器发送“job_id\r\n” 这是我的 C# 方法: public static async Task UploadAsync(
我有以下代码: private static string boundary = "----CustomBoundary" + DateTime.Now.Ticks.ToString("x"); pr
我正在使用 HttpClient 将 MultipartFormDataContent 发布到 Java 网络应用程序。我正在上传几个 StringContents 和一个文件,我使用 Multipa
考虑以下代码: MultipartFormDataContent MPFD = new MultipartFormDataContent(); MPFD.Add(new StringConte
我正在尝试上传多个文件。 val ktorVersion = "1.5.0" val serializationVersion = "1.0.1" 我就是这样做的: override suspen
我正在尝试使用 MultipartFormDataContent 在 HTTP POST 中发送一个大文件以及一些其他数据。为了以 block 的形式发送文件,我使用了 PushStreamConte
I'm trying to use an Autorest generated C# client to send MultipartFormDataContent but the reques
我需要发布一个请求,其中包含:一个定义为字符串的 xml 和一个 json。我在正确设置内容和处理 JToken 方面遇到问题。 Fiddler 中的原始请求如下所示: 内容类型:多部分/表单数据;边
我是一名优秀的程序员,十分优秀!