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

无法对此处映射定位终结点进行异步Post调用

全宪
2023-03-14

通过Postman和C#WebRequest测试调用时,它可以工作,但我无法使用带有PostAsync或PostJsonAsync调用的HttpClient执行相同的操作。

错误:不支持的媒体类型,尽管应用程序/json是必需的。

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders
                    .Accept
                    .Add(new MediaTypeWithQualityHeaderValue("application/json"));

var content = new StringContent(data, Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("https://pos.api.here.com/positioning/v1/locate?app_id={id}&app_code={code}", content);
return response;

状态代码:415,原因短语:“不支持的媒体类型”,版本:1.1,内容:系统。网Http。HttpConnection HttpConnectionResponseContent,标题:{日期:2019年11月8日星期五13:38:37 GMT服务器:nginx clojure内容类型:应用程序/json内容长度:114}

Web请求

HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;
if (!string.IsNullOrEmpty(data))
{
    request.ContentType =  "application/json";
    request.Method =  "POST";

    using (var streamWriter = new StreamWriter(request.GetRequestStream()))
    {
        streamWriter.Write(data);
        streamWriter.Flush();
        streamWriter.Close();
    }
}

using (HttpWebResponse webresponse = request.GetResponse() as HttpWebResponse)
{
    using (StreamReader reader = new StreamReader(webresponse.GetResponseStream()))
    {
        string response = reader.ReadToEnd();
        return response;
    }
}

共有1个答案

柳飞鸾
2023-03-14

我看到了两个不同点:

  1. 您正在设置HttpClient代码中的Accept头,而您不在WebRequest代码中。这定义了您接受的数据类型。如果这个API调用没有返回JSON,那么它可能只是说“我没有什么要对你说的”。你可以试着删除整行
var content = new StringContent("");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
 类似资料:
  • 我是使用Spring SOAP W的新手。我学习了许多教程,并试图适应这个示例的需要,但从未成功,我得到了这样的消息:找不到[SaajSoapMessage { http://ws . veritran . net/vtAuthServer/types } validatePOTCRequest]的endpoint映射 这是梅的代码: 这是我的终点: 这是我的服务级别: 这是我的WSDL定义 最后

  • 在这里我在地图上添加标记: 使用lat lng阵列列表添加lat lng,但当我在以下帮助下添加标记时: <代码>列表 在这种情况下,我可以通过以下方式获得lat long: 以下是地图上的地图标记: 这里我得到的尺寸是这样的:

  • 我正在使用泽西2.22.1来实现REST API。 我创建了一个自定义异常映射器,将运行时异常映射到我选择的特定HTTP响应代码。 我的资源类配置为接受POST请求的多个参数。 当我发送不带任何参数的POST请求时: 我希望调用我的自定义异常映射器,但它没有被调用。相反,我得到了一堆非法状态异常。 有人能解释为什么我的自定义异常映射器没有被调用吗? 注意,如果我在资源方法中抛出一个RuntimeE

  • 问题内容: 假设我有一个异步可迭代对象,可以使用来传递它,然后又如何将其映射并过滤到新的异步迭代器上?以下代码是对我如何使用同步可迭代方法执行相同操作的适应,因此不起作用,因为s内部不允许这样做。 问题答案: 一个最近公布的PEP草案(PEP 525) ,其支持定为Python 3.6 ,建议允许异步发电机与你想出了相同的语法。 同时,如果您不想处理异步迭代器样板,还可以使用CryingCyclo

  • 我有一个资源类,它本身与内部服务进行对话。此资源充当服务的rest API。服务层可以抛出意外异常,因此资源应该处理那些已处理的意外异常并将其记录下来。我正在使用dropwizard框架,它反过来又使用jersey。事情是这样的。 这里的问题是,我必须对每个REST apiendpoint执行完全相同的异常处理。我可以为这个特定的资源进行某种类型的异常映射,以便将所有的处理逻辑和日志记录放在那里吗

  • 问题内容: 我正在尝试配置我的实体,但是hibernate会引发以下异常: 这些是我的实体: 下一个: 最后一个: Hibernate无法确定位于SDUser实体中的productAccess列的类型。我是Hibernate的新手,我不知道发生了什么。 我应该提供某种ID吗? 谢谢!! 问题答案: 在中,您需要在上添加关联信息: