我在使用C#的ASP.NET 4中遇到了我的Web API的小问题。我正在尝试创建一个前端GUI,该GUI通过多个Web
API发送和接收数据。拥有多个API的原因与我们的网络有关,该网络由几个安全区域组成。服务器位于不同的区域,一个简单的请求可能必须传递多达3个不同的API。
具体来说,我是从GUI向第一个API发送JSON对象。应该将JSON对象转发到下一个API和下一个API,然后从那里创建一个新的JSON对象,并沿着相同的路径返回。
路径本身工作正常。问题在于,一旦返回到GUI,就无法解析JSON对象。我收到一个用引号引起来的JSONhtml" target="_blank">字符串,每个API一次。
字符串可能像这样开始:
Hey! I am a string, or a JSON object of sorts!
API之间的第一跳为我提供了这一点:
"Hey! I am a string, or a JSON object of sorts!"
在下一跳之后,它看起来像这样:
"\"Hey! I am a string, or a JSON object of sorts!\""
到我的GUI掌握了它时,我们就会得到以下内容:
"\"\\\"Hey! I am a string, or a JSON object of sorts!\\\"\""
出于明显的原因,这是解析失败的地方。JSON对象本身的格式正确,但是所有引号都导致JSON.net解析器出现问题(对象内的所有引号也被多次包装)。
到目前为止,我尝试将请求发送为应用程序/
json类型和文本/纯文本类型。两者都做同样的事情。API返回HttpResponseMessage,可使用ReadAsStringAsync()读取该消息。我还尝试避免读取字符串,而只是直接从HttpRequestMessage读取到HttpResponseMessage中,并且仅在GUI中执行ReadAsStringAsync(),但问题仍然存在。JSON字符串是使用JSON.nets
Serialize()方法创建的,并使用StringContent()放入HttpContent。这似乎正确地完成了工作。我相信引号是在API和GUI收到HttpResponseMessage时生成的。
知道如何将JSON字符串作为原始字符串发送和接收吗?
通过将对象解析为每个API的JToken或JObject,然后再次对其进行序列化,可以绕过此行为。但是,这不是一个好的解决方案-
我宁愿API只是按照消息的获取方式转发消息,而不对消息做任何事情。我使用路由研究了转发,但是正在进行很多授权工作,这确实要求我使用API操作,而不是重定向路由。
澄清一下(TLDR):理想的解决方案是API仅传递消息而不解析或读取任何内容。只要消息的来源得到授权,请求被加密并且所请求的URL有效,消息本身对于每个“代理”
API都没有太大关系。
经过大量研究后,我终于弄清楚了这一点。
首先 我直接返回了HttpResponseMessage。我并不是故意沿API路径在每个跃点内反序列化它。
事实证明,问题实际上是我们在混合使用“本机”
MVC序列化方法和JSON.net的方法。单独使用任何一种都可以,并且可以提供所有API的清晰传递。但是,如果将原始方法和JSON.net方法中的序列化数据组合在一起,则API的下游将无法识别格式,并错误地假定应该再次序列化内容(使用原始方法)。
因此,解决方案只是从序列化过程中删除所有JSON.net方法,我们最终获得了预期的结果。
问题内容: 我需要在逗号处将字符串输入分解为数组。但是,字符串在引号内包含逗号。 输入: 返回$ linemysql为: 我如何才能做到这一点,而爆炸会忽略引号内的逗号? 问题答案: 由于您使用的是逗号分隔的值,因此可以使用。 将返回:
我知道如何计算出字符串中某个字符或数字的索引,但是有没有任何预定义的方法可以用来给我第n个位置的字符?所以在字符串“foo”中,如果我要求索引为0的字符,它会返回“f”。 注意——在上面的问题中,我所说的“字符”不是指字符数据类型,而是字符串中的字母或数字。这里重要的一点是,调用该方法时,我不会收到char,而是一个字符串(长度为1)。我知道substring()方法,但我想知道是否有更简洁的方法
问题内容: 我知道如何计算字符串中某个字符或数字的索引,但是我可以使用任何预定义的方法在第n个位置给我该字符吗?因此,在字符串“ foo”中,如果我要求索引为0的字符,它将返回“ f”。 注意-在上述问题中,“字符”不是字符数据类型,而是字符串中的字母或数字。这里重要的是,调用该方法时,我不会收到字符,而是一个字符串(长度为1)。而且我知道substring()方法,但是我想知道是否有更整洁的方法
问题内容: 我有: 我希望有: 用Python做到这一点最简单的方法是什么? 问题答案:
本文向大家介绍groovy 单引号字符串,包括了groovy 单引号字符串的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 我有两个脚本,Server.py和Client.py。我有两个目标: 为了能够一次又一次地从客户端向服务器发送数据。 为了能够将数据从服务器发送到客户端。 这是我的Server.py: 这是我的客户: 该函数首次运行(“ e”进入服务器,我返回返回消息),但是如何使它一遍又一遍地发生(类似于聊天应用程序)?该问题在第一次之后开始。消息不会在第一次之后发送。我究竟做错了什么?我是pyth