我在Windows10上的VisualStudio中用C#编写了一个示例代码,该代码试图将带有自定义头的POST请求发送到运行在的服务http://localhost:9998这是失败的。
当我查看请求时,内容类型标题字段将作为ContentType(无连字符)发送。
httpRequestMessage:方法:POST,请求URI:'http://localhost:9998/,版本:1.1,内容:系统。网Http。ByteArrayContent,标题:{
ContentType:application/vnd.com.documents4j.any-msword Accept:application/pdf转换器作业优先级:1000}响应:状态代码:500,原因短语:“请求失败”,版本:1.1,内容:系统。网Http。流内容,标题:{连接:关闭日期:星期六,2021年4月10日22:39:24GMT内容长度:1031内容类型:文本/HTML;字符集= ISO-8591-1}按任意键继续…
我想知道这是否是问题的原因?
我有用C#编写的代码,使用RestSharp,正确发送Content-Type并返回成功的结果。我有写在Java的代码,也正确发送Content-Type并返回一个成功的结果。
示例代码1[发送ContentType为ContentType的问题]
using System;
using System.Net;
using System.IO;
using System.Net.Http;
namespace HttpPOST10
{
class Program
{
public static string MyUri { get; private set; }
static void Main(string[] args)
{
// string url = "http://localhost:9998";
string url = "http://localhost:8888"; // Fiddler
Uri myUri = new Uri(url);
string srcFilename = @"C:\temp2\Sample.doc";
string destFileName = @"C:\temp3\Sample-HttpPOST10.pdf";
UploadFile(url, srcFilename, destFileName);
}
private static bool UploadFile(string url, string srcFilename, string destFileName)
{
HttpClient httpClient = new HttpClient();
byte[] data;
data = File.ReadAllBytes(srcFilename);
var httpRequestMessage = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri(url),
Headers = {
{ HttpRequestHeader.ContentType.ToString(), "application/vnd.com.documents4j.any-msword" },
{ HttpRequestHeader.Accept.ToString(), "application/pdf" },
{ "Converter-Job-Priority", "1000" },
// {"User-Agent", "RestSharp/106.11.8.0" }
},
Content = new ByteArrayContent(data)
};
Console.Write("httpRequestMessage:" + httpRequestMessage);
var response = httpClient.SendAsync(httpRequestMessage).Result;
Console.Write("response:" + response);
return true;
}
}
}
谢谢吉米——现在得到了成功的回应。
http://localhost:9998/,版本:1.1,内容:系统。网。http://http.ByteArrayContent, Headers:{
ContentType: Application/vnd.com.documents4j.any-mword接受: Application/pdf转换器-作业-优先级: 1000 Content-Type: Application/vnd.com.documents4j.any-mword}响应: StatusCode: 200,原因短语:'OK',版本: 1.1,内容:系统。网。http://http.StreamContent,标头:{不同:接受-编码
传输-编码:组块日期:周一,4月12日2021 03:04:14格林尼治标准时间
内容类型:应用/pdf
代码更改为:
private static bool UploadFile(string url, string srcFilename, string destFileName)
{
HttpClient httpClient = new HttpClient();
byte[] data;
data = File.ReadAllBytes(srcFilename);
HttpContent content = new ByteArrayContent(data);
content.Headers.Add("Content-Type", "application/vnd.com.documents4j.any-msword");
var httpRequestMessage = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri(url),
Headers = {
{ HttpRequestHeader.ContentType.ToString(), "application/vnd.com.documents4j.any-msword" },
{ HttpRequestHeader.Accept.ToString(), "application/pdf" },
{ "Converter-Job-Priority", "1000" },
},
Content = content
};
Console.Write("httpRequestMessage:" + httpRequestMessage);
var response = httpClient.SendAsync(httpRequestMessage).Result;
Console.Write("response:" + response);
return true;
}
我有一个使用axios发送post请求的表单。问题在于,发送请求时使用的标题的内容类型为:multipart/form data。我的nodejsapi不喜欢这样,它给了我一个未定义的req。身体 我有其他使用相同技术的表单,它们可以工作,标题与预期的一样:Content-Type:application/json;字符集=UTF-8 张贴Content-Type: Multipart/form-
我需要发送一个GET请求,标题是:。我期待服务器的XML响应。我用邮递员测试了请求和响应,一切都很好。但是,当我尝试在Spring中使用执行此操作时,我总是会收到400个错误请求。的异常是: 我的代码: 调试消息将标头显示为,这似乎是正确的。我想知道我的请求出了什么问题,以及是否有一种方法可以看到在线调试的请求。
我是一个使用angular的新手,我正在努力学习一点,但我不能使用令牌进行简单的获取。我做了很多研究,最后总是得到这段代码。 对于我的后端,我使用Kotlin/Springboot并配置了Cors。 即使如此,当尝试这样做请求我得到这个错误。 访问位于“”的XMLHttpRequesthttp://localhost:5000/api-v1/来源的帐户/列表 -- 果心js:15713错误Http
如何将自定义标头添加到HttpClient请求?我使用方法发布JSON。我需要添加的自定义标题是 这是我到目前为止所做的:
我使用django rest框架作为后端,并试图使用请求标头中的令牌来验证角请求,但角没有发送任何标头值。我已经尝试了所有的方法添加头请求 访问控制请求标头:访问控制允许标头、访问控制允许来源、授权、内容类型访问控制请求方法:GET DNT:1来源:http://localhost:4001推荐人:http://localhost:4001/