- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们在重定向 API Http GET 调用时遇到错误。我在 stackoverflow 上搜索了类似的问题,但它似乎不像我们的问题。
我们有一个简单的场景。我们的解决方案是作为 API 调用“网关”的后端。
从我们的角度客户端,我们调用/api/values 并且它必须重定向到 http://example.com:8080/api/values
。
所以我们开始了一个 .NET Core API 项目,我们尝试从 API Controller 简单地进行 API 客户端调用。
这是原始类:
namespace WebApplication2.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
// GET api/values
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
}
}
然后,我们将实际调用添加到我们的真实 API,如许多教程中所述。我们只想返回从我们的 API 获得的响应(格式见下文)。
// GET api/values
[HttpGet]
public async Task<String> Get()
{
string retValue = "";
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://example.com:8000");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await client.GetAsync("/document/info/ab5846a1afe8ad12e46a4e60");
if (response.IsSuccessStatusCode)
{
retValue = await response.Content.ReadAsAsync<string>();
}
}
return retValue;
}
An unhandled exception occurred while processing the request.
JsonReaderException: Unexpected character encountered while parsing value: {. Path '', line 2, position 1. ReadStringValue
如果我使用这条路由向我们的 API 发送 postman ,结果如下:
{
"errorCode": 0,
"docId": "ab5846a1afe8ad12e46a4e60",
"status": 0
}
{
"version":{
"major":1,
"minor":1,
"build":-1,
"revision":-1,
"majorRevision":-1,
"minorRevision":-1
},
"content":{
"headers":[
{
"key":"Content-Length",
"value":[
"78"
]
},
{
"key":"Content-Type",
"value":[
"application/json"
]
}
]
},
"statusCode":200,
"reasonPhrase":"",
"headers":[
{
"key":"Date",
"value":[
"Fri, 06 Jan 2017 12:54:31 GMT"
]
}
],
"requestMessage":{
"version":{
"major":1,
"minor":1,
"build":-1,
"revision":-1,
"majorRevision":-1,
"minorRevision":-1
},
"content":null,
"method":{
"method":"GET"
},
"requestUri":"http://example.com:8000/document/info/ab5846a1afe8ad12e46a4e60",
"headers":[
{
"key":"Accept",
"value":[
"application/json"
]
}
],
"properties":{
}
},
"isSuccessStatusCode":true
}
最佳答案
这行是问题
retValue = await response.Content.ReadAsAsync<string>();
带有 string
参数的 ReadAsAsync
泛型方法基本上是将 HttpResponseMessage
反序列化为字符串。
使用ReadAsStringAsync
相反。
retValue = await response.Content.ReadAsStringAsync();
你应该会得到想要的结果。
关于c# - 解析值时 HttpClient JsonReaderException 意外字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41506604/
我在部署的系统上收到以下错误: See the end of this message for details on invoking just-in-time (JIT) debugging ins
我有一个使用 Angular 和 C# 的网络项目。 在 C# Controller 中,我想读取用于测试的本地 json 文件的内容。 这是我运行的代码,用于从我的工作目录中读取 JSON。 str
我有这段代码来尝试打开一个 .json 文件并读取它: [Route("{unit}/{begindate}")] public string Get(string unit, string begi
主程序中的代码 controller.modelToFile("passwords/test.json"); controller.deJSONizeModel("passwords/test.jso
我在 header 中请求 gZip 响应,例如: request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip"); 在 webrespon
我在全息镜头上部署时遇到异常。我不知道为什么或如何解决它。它发生在下面的类中。 class JsonConverter { public Dictionary convertJsonToObj
上下文 - 我们的代码 我们在重定向 API Http GET 调用时遇到错误。我在 stackoverflow 上搜索了类似的问题,但它似乎不像我们的问题。 我们有一个简单的场景。我们的解决方案是作
我遵循了那里的教程,并且想出了这个...... 它是一种设备注册方法,使用 Microsoft.WindowsAzure.MobileServices.MobileServiceClient.Regi
正在尝试连接 JOliver's EventStore与 RavenDB并遇到障碍。我在 Raven 中创建了一个名为 RavenEventStore 的新数据库。 以下是我的线路; return W
我正在尝试制作一个 discord 机器人,但我在连接到 discord API 时遇到问题。我正在使用 visual studio community 2019。我使用 .net 核心控制台应用程序
我正在尝试用 C# 编写 AWS Lambda 函数。我有 AWS Toolkit for Visual Studio 2015。我使用 AWS Lambda 项目 (.Net Core) 创建了一个
反序列化命令时,我们遇到随机异常。我们有一个仅发送 API,可将消息放入队列中。尝试使用消息但失败。无论消息类型如何,它都会随机发生。有时后端可以反序列化消息。我们将 NServiceBus 设置为使
我正在尝试将一些日期插入到我的本地数据库中。我收到一个错误: {Newtonsoft.Json.JsonReaderException: Could not convert string to Dat
反序列化命令时,我们遇到随机异常。我们有一个仅发送 API,可将消息放入队列中。尝试使用消息但失败。无论消息类型如何,它都会随机发生。有时后端可以反序列化消息。我们将 NServiceBus 设置为使
我正在尝试将一些日期插入到我的本地数据库中。我收到一个错误: {Newtonsoft.Json.JsonReaderException: Could not convert string to Dat
我们已将 Newtonsoft.Json 从 10.0.3 升级到 11.0.1,之前可以运行的代码不再运行。 我们有以下 JSON: [{"mail-type":"registration","re
我在解析包含 JSON 的字符串时收到此异常: Newtonsoft.Json.JsonReaderException: Unterminated string. Expected delimiter
您好,我正在尝试从移动后端调用 lambda 函数。 我使用.Net Core生成了Lambda函数 public string FunctionHandler(string text,
我有以下字符串。我收到以下错误。你能告诉我哪里出了问题吗? Unexpected character encountered while parsing value: C. Path '', line
我正在运行下面的代码来故意抛出 JsonReaderException。它正确地给出了“无法将字符串转换为 bool 值:aaa。路径‘事件’,第 3 行,位置 17”的异常消息。 有什么方法可以直接
我是一名优秀的程序员,十分优秀!