- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在 F# 交互式 session 中尝试一些基本的 HTTP 请求响应操作,以尝试更好地感受这门语言。这里的一切似乎都按预期工作,除了当我获得 HTTP 请求的响应流时,我似乎永远无法从中读取任何内容。在下面的代码中,我每次都从 printfn 行获取文本,但是 responseString
的值似乎总是为空。我遗漏了什么明显的东西吗?
let httpListener = new HttpListener()
httpListener.Prefixes.Add("http://*:8020/")
let getContext = Async.FromBeginEnd(httpListener.BeginGetContext, httpListener.EndGetContext)
let processRequest = async {
while true do
let! context = getContext
let request = context.Request
use requestReader = new StreamReader(request.InputStream)
let requestString = requestReader.ReadToEnd()
let response = context.Response
use streamWriter = new StreamWriter(response.OutputStream)
streamWriter.WriteLine "A response!"
response.Close()
}
httpListener.Start()
let maxThreads = 10
for n = 0 to maxThreads do
Async.Start processRequest
printfn "HttpListener started with %d maximum threads processing requests." maxThreads
let sendRequest = async {
let request = WebRequest.Create("http://localhost:8020") :?> HttpWebRequest
let postBytes = Encoding.ASCII.GetBytes("Issuing HTTP")
request.Method <- "POST"
request.ContentType <- "application/x-www-form-urlencoded"
request.ContentLength <- int64 postBytes.Length
let requestStream = request.GetRequestStream()
requestStream.Write(postBytes, 0, postBytes.Length)
requestStream.Close()
let! response = Async.FromBeginEnd(request.BeginGetResponse, request.EndGetResponse)
let responseStream = response.GetResponseStream()
use streamReader = new StreamReader(responseStream)
let responseString = streamReader.ReadToEnd()
printfn "Received the following response: %s" responseString
}
for n = 0 to maxThreads do
Async.Start sendRequest
最佳答案
您需要减少 StreamWriter 的使用范围,以便它可以在 Dispose 上刷新。
let processRequest = async {
while true do
let! context = getContext
let request = context.Request
use requestReader = new StreamReader(request.InputStream)
let requestString = requestReader.ReadToEnd()
let response = context.Response
do
use streamWriter = new StreamWriter(response.OutputStream)
streamWriter.WriteLine "A response!"
response.Close()
}
关于http - 从 WebResponse 响应流读取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17961353/
我正在尝试使用 C# 和 WebRequest 从 Internet 获取一个大文件。到目前为止,我拥有的所有其他东西都工作正常,但似乎我得到的响应中间的某些部分被删除了。我尝试打印出 respons
我正在尝试编写一个简单的程序来从网站返回状态代码。当前使用 HttpWebRequest 和 HttpWebResponse 类。然而,它们的工作方式对我来说似乎很糟糕,只有在 200/OK 时才会返
我目前正在研究一个帮助我创建带有 cookie 和 POST 参数的 WebRequest 的类。但是 response.cookies 总是空的。我如何获取返回的 cookie 并将它们与下一个请求
所以我正在制作一个程序,它几乎可以生成批量 HttpWebRequests。在这个程序中,速度是主要的。如果我能找到将 HttpWebRequests 增加一毫秒的方法,那就太好了。 好吧,我的问题是
网站上有一个 PHP 脚本。我还有一个 C# winforms 程序,它使用 WebRequest/WebResponse 方法发送 POST 消息。 此 PHP 脚本连接到 mysql 数据库,获取
使用 C#,我需要确定开始从 WebRequest 接收响应所需的时间(目前,我不担心下载完整响应所需的时间)。 据我所知,为此我需要使用 WebRequest 的异步方法。这是我想出的: publi
我们正在将我们的解决方案之一移植到 PCL,但在 NET 框架基类库的受支持类和属性方面面临很多问题。为了使相同的功能在不同的平台上工作,我们实现了 WebClient,但我们在 WebResporn
我正在尝试使用 Web 服务将数组返回到我的 GUI,但我不知道如何从 WebResponse 中实际提取数组。 这是 GUI 中调用 Web 服务的方法: public static ArrayLi
我正在使用 C# 开发 Windows 应用商店应用程序,我是这个平台的新手(我主要从事 IOS 和 Android 方面的工作)。 我有一个简单的异步方法可以从远程服务器下载原始数据。它工作正常,除
我一直在 F# 交互式 session 中尝试一些基本的 HTTP 请求响应操作,以尝试更好地感受这门语言。这里的一切似乎都按预期工作,除了当我获得 HTTP 请求的响应流时,我似乎永远无法从中读取任
WebResponse response; try { HttpWebRequest request = (HttpWebRequest)WebRequest.Crea
我知道这是一个菜鸟问题,但只是想知道 GetResponseStream() 是否可以在任何情况下返回 null? 最佳答案 好吧,这有点取决于具体的子类 - 但我从未见过任何这样做的子类,而且它没有
我有一个 .Net Framework #4.0 应用程序,它使用 WebRequest/WebResponse 类发出大量 Web 请求,因为我发现它有内存泄漏(或者我做错了什么)我写了一些简单的小
通常,人们会编写类似这样的代码来使用 WebRequest 下载一些数据。 using(WebResponse resp = request.GetResponse()) // WebRequest
private void RespCallback(IAsyncResult asynchronousResult) { try { WebRequest myWebR
我在 C# 中有一个函数,它通过从路由器页面检索 64b XML 来获取 Internet 的状态 public bool isOn() { HttpWebRe
从 WebResponse 获取文件(在本例中为 .PDF,但任何文件都可以)并将其放入 MemoryStream 的最佳方法是什么?使用 WebResponse 中的 .GetResponseStr
调用初始 HttpWebResponse.GetResponseStream() 并读取流后,该流已完成且无法重用。 我遇到一种情况,我需要检查响应的内容,如果它是特定数据,则获取另一个页面,然后将新
我使用 MVC4 Web API 创建了一个 RESTful 网络服务。如果出现问题,我将抛出 WebException。 throw new WebException("Account not fo
我正在尝试编写一个单元测试,其中我的 sut (authMock) 的依赖项应该抛出一个具有特定响应的 Webexception(将在 sut 中相应地解析的 json)。但是,我无法像这样使用 Mo
我是一名优秀的程序员,十分优秀!