当前位置: 首页 > 知识库问答 >
问题:

是否有方法在C#中传递此contenttype“application/x-www-form-urlencoded;v=2.0”?

穆彬郁
2023-03-14

我试图用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);
        }
    }


共有1个答案

张淳
2023-03-14

可以尝试直接使用请求。内容。标题。添加(内容类型,应用程序/x-ww-form-urlencoded; v=2.0);

MediaTypeHeaderValue仅支持为HTTP/1.1定义的标准媒体类型

编辑错误:)

 类似资料:
  • 问题内容: 之间有什么区别 request.ContentType =“ application / json; charset = utf-8”; 和 webRequest.ContentType =“ application / x-www-form-urlencoded”; 问题答案: 第一种情况是告诉Web服务器您正在发布JSON数据,如下所示: 第二个选项是告诉Web服务器您将对URL中

  • 当内容类型不是text/html、text/plain或text/xml,而是application/x-www-form-urlencoded内容类型时,我很难理解如何设置字符集。 给出以下(简化的)javascript代码: 如果我没有显式设置编码, Firebug告诉我内容类型是"Application/x-www-form-urlencoded; charset=UTF-8"。 例如,如果

  • 我试图调用Web服务,但在播放框架2.0. x我无法调用任何编码的Web服务。 我已经研究了代码: 参考:https://stackoverflow.com/a/14938117/4410109 我已经尝试了上面的代码在Play框架2.0.8,但我得到了这个错误: 错误:找不到符号。setContentType(“application/x-www-form-urlencoded;charset=

  • 感谢您就我在CXF REST提供商方面面临的以下问题提供建议。 我使用Apache CXF开发了REST web服务服务器。以下是合同定义。请注意,这是在Camel上下文中使用的。 以下是我的bean定义: 当我发送内容类型为“application/json”的请求时,一切正常。但当发送内容类型为“application/x-www-form-urlencoded”的请求时,请求会命中服务器,但

  • 这是我的课。当我使用带有有效json的邮递员访问该url时http://localhost:8090/user 我犯了一个错误 我试过这个https://stackoverflow.com/a/38252762/11369236 我不想像这里这样使用requestparam https://stackoverflow.com/a/43065261/11369236 一些答案建议使用 但spring

  • 问题内容: 我曾经有ElasticSearch 5.2,并且刚升级到6.0。 我正在尝试按照此处的指南创建索引模板,但出现错误 我的查询是 问题答案: 要解决此问题,请添加curl选项 这个错误是由于 严格的内容类型检查 在ElasticSearch 6.0中引入,在解释这个岗位 从Elasticsearch 6.0开始,所有包含主体的REST请求也必须提供该主体的正确内容类型。