【问题标题】:Add xml file to ASP.NET Core http post request将 xml 文件添加到 ASP.NET Core http post 请求
【发布时间】:2019-02-09 09:38:02
【问题描述】:

我正在编写 http post 方法,该方法应该具有带有下一个值的请求标头

authkey : "somevalue", 
number : "somenumber", 
entity : "someentity". 

还有客户要求我上传 xml 文件作为表单数据。我不确定我知道该怎么做。 以下代码显示了我现在已经实现的内容:

var req = new HttpRequestMessage(HttpMethod.Post, destinationUrl);
req.Headers.Add("authKey", "somevalue");
req.Headers.Add("number", somenumber);
req.Headers.Add("entity", "someentity");

如何添加我的 XML?我已经找到了以下代码,但不确定它是否适用于这种情况:

byte[] bytes;
bytes = System.Text.Encoding.ASCII.GetBytes(serverResponse);
req.ContentType = "text/xml; encoding='utf-8'";
req.ContentLength = bytes.Length;
req.Method = "POST";
Stream requestStream = req.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
HttpWebResponse resp;

【问题讨论】:

  • but not sure it can work for this case 你为什么不试试看能不能炒起来?
  • 那么我们应该怎么知道呢?如果您至少尝试搜索并检查什么是 500 错误...我在这里为您完成了:500 Internal Server Error When sending web request using api。我可以从您共享的详细信息中说...您发送了某种请求,在服务器端处理您的请求时出现了问题,并且您得到了 500 作为响应。发生了什么——除了你之外没有人知道。请阅读How do I ask a good question?

标签: c# xml post asp.net-core


【解决方案1】:

这似乎已经在此之前得到了回答...https://stackoverflow.com/a/17535912/3585339

您缺少的部分是将响应读取到您创建的resp 变量中,如下所示:

resp = (HttpWebResponse)request.GetResponse();
if (resp.StatusCode == HttpStatusCode.OK)
{
    Stream responseStream = resp.GetResponseStream();
    string responseString = new StreamReader(responseStream).ReadToEnd();
    return responseString;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 2017-10-03
    相关资源
    最近更新 更多