我试图用C语言复制CURL中的以下代码。请注意,这段代码使用curl时工作正常。我在用这个https://curl.olsh.me/创建请求。
curl-k-u“默认用户:机器人”-H”内容类型:application/x-www-form-urlencoded;v=2.0“-d”value=TRUE“”https://localhost/rw/rapid/symbol/RAPID/T_ROB1/EGMDemo/run_egm/data?mastership=implicit"
我已尝试将此命令转换为c#,到达线路时:
要求所容纳之物标题。ContentType=新的MediaTypeHeaderValue(“应用程序/x-www-form-urlencoded;v=2.0”);
我收到一个异常,应用程序/x-www-form-urlencoded; v=2.0无效。如何通过这种内容类型?如果这是不可能的http客户端有没有其他的方法来做到这一点?
var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback = (requestMessage, certificate, chain, policyErrors) => true;
using (var httpClient = new HttpClient(handler))
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://localhost/rw/rapid/symbol/RAPID/T_ROB1/EGMDemo/run_egm/data?mastership=implicit"))
{
var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("Default User:robotics"));
request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");
request.Content = new StringContent("value=TRUE");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded;v=2.0");
var response = await httpClient.SendAsync(request);
}
}
可以尝试直接使用请求。内容。标题。添加(内容类型,应用程序/x-ww-form-urlencoded; v=2.0);
MediaTypeHeaderValue
仅支持为HTTP/1.1定义的标准媒体类型
编辑错误:)