问题标签 [httpcontent]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 上传时自定义 HttpContent 失败
我有一个跨平台库(.net framework 4.6.2、.net standard 2.0 和 uwp)。我为上传目的创建了一个可进度的流内容。
在 .net 框架和 .net 标准中,一切正常,但在 UWP 中却不是。每次在 uwp 中,它都会返回500 server error (internal)
.
当我尝试上传时,ProgressableStreamContent
一切都在 UWP 中运行良好。
这是我的课:
而且,我该如何使用它:
c# - 无法从 POST 请求反序列化 HttpContent
我正在尝试向服务器发送POST
请求。请求进入Middleware
'Invoke
方法。
但是Content
,无论对象的类型如何,它始终为空。
发件人
服务器
服务器没有service
定义,只是一个middleware
响应route
. (请求进入Invoke
方法!)
启动
中间件
我检查了我的序列化,并且对象被序列化得很好。
尽管如此,我总是null
在另一边得到一个。
PS
我也尝试过使用不middleware
只是一个简单的委托,如下所示:
即使没有专门middleware
的问题仍然存在。
问题不在于middleware
,它的请求在客户端正确序列化,发送到服务器,并且以某种方式body
显示为null
.
如果它对对象失败,我会理解deserialize
的,但是HttpContext.Request.Body
作为字符串被接收null
并且它length
是null
!
c# - await HttpContent.CopyToAsync() 导致空目标流
我正在尝试(但失败)从 Request.HttpContent 对象中获取实际的 JSON 字符串。
这就是我正在做的事情:
我的问题是,在执行此代码时,我总是得到一个空字符串——除非我在将 streamCopy 位置设置为零的行上使用断点,这让我认为代码在启动 CopyToAsync 方法后继续执行.
如果我将其更改为:
它总是能正常工作(例如,结果将包含 JSON,但这闻起来……很臭。
我在这里做错了什么?
c# - 方法 HttpContent.ReadAsStringAsync() 返回无效的 html 代码。怎么可能?
这是一些代码,用于从 url 请求 html 代码。
所以,问题是:为什么我从程序中获得的 html 代码和我之前打开几秒钟的浏览器中真实页面的 html 代码不同?这没有任何意义。
另外,这里有一些证明。第一个图像 - 浏览器 html 代码中的字符数
我给出了最简单的证据,使问题更容易。但如果我深入挖掘,html 代码不知从何而来。当我解析一个特定的页面时,它应该是 39 个产品,程序返回 html 代码,其中只有 6 个产品(顺便提一下,这 39 个产品不包括在浏览器中实际出现在页面上的 39 个产品中)。所以我就这么简单地问了这个问题。真的,我在一分钟前用这段代码做了一个新项目,但正如我上面写的那样,它工作不正确。要获取程序返回的代码,我可以在源变量中查找它或将其保留在文件中,然后进行比较。喜欢:
json - 使用 HttpContent.ReadAsStringAsync 等待与 .Result
我有一个自定义模型活页夹:
使用大负载时, content.ReadAsStringAsync().Result 似乎使我的 Web 请求超时。
模型绑定器接口强制同步 API ......但是通过将此代码移动到我的控制器中:
并使用 await over .Result 进行消费 - Web 请求毫无问题地通过。我很好奇为什么?
c# - 为什么httpcontent readasstringasync会抛出取消的异常
我不确定我的代码中有多少与找出问题相关,所以我将从头开始。我使用 Injection 创建一个 azure web job 程序,它看起来像这样:
然后我的应用程序运行方法如下所示:
然后服务调用第三方 api 并按如下方式进行调用:
当我调用上面的代码时:var json = result.Content.ReadAsStringAsync().Result;
我得到一个异常:
请求被中止:请求被取消。
我不知道为什么。我没有在任何地方调用取消,它也没有超时,因为这会立即发生,我设置了 30 分钟的超时时间,只是为了看看它是否有所作为。结果对象有值,它有标题和状态码 200。所以看起来 post 请求已经工作了,但是当它试图解析响应时,它抛出了那个异常。有谁知道我哪里出错了?
如果我通过提琴手查看响应,我会看到以下内容:
{"result_code":0,"result_message":"一些消息","result_output":"json"}
编辑:经过更多测试,我发现如果我从网站调用相同的代码(相同的参数)(不做任何更改),那么它就可以工作。但是,如果我从上面显示的应用程序中调用它,那么它不会。
httpcontent - c# httpcontent - 添加 Header If-Match 错误
添加新标题“If-Match”
抛出:
我可以添加任何其他标题
c# - 定位到 URL 时,localhost 路由不起作用应该返回 JSON
我的程序员伙伴们,我基本上有这个异步 Get() 方法可以成功读取 Json 数据,但是在定位到路由时 -> localhost:59185/api/encompass/data 我收到一条消息:
我非常希望它会返回我的 JSON,尤其是在调试代码时,它位于底部的“字符串 res”中
任何人都知道为什么它不返回 Json 甚至认为它坐在“res”中?
控制器:
streamreader - 在不关闭底层流的情况下安全地使用带有 HttpContent.ReadAsStreamAsync() 的 StreamReader
我有多个 Attribute 类需要访问 an HttpContent
(在 an HttpActionContext
's中HttpRequstMessage
)中的数据,但我在决定最好的方法时遇到问题。我考虑使用 上的ReadAsStringAsync
方法HttpContent
,但似乎我需要访问Stream
才能首先将位置设置为 0。
天真的方式似乎只是用这样的语句StreamReader
将基本流包裹起来:using
这适用于执行的第一个属性,但执行的每个后续属性都会引发异常,actionContext.Request.Content.ReadAsStreamAsync()
因为它已被释放。
以下是可行的替代方法,但我真的很想知道这样做的最佳方法。
1:将 a 包裹StreamReader
在基本流周围并且永远不要丢弃它。
这适用于每个属性,但我担心我可能会因为不处理StreamReader
.
2:将基本流复制到 aMemoryStream
并用StreamReader
.
这适用于每个属性,但代码量很大,可能效率低下。
3:将基本流的位置设置为0,然后调用ReadAsStringAsync
。
这适用于每个属性,但可能效率较低。
那么,有没有一种不泄漏内存的最佳方法呢?