- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 HttpWebRequest.BeginGetRequestStream
方法。在我的方法中,我得到了一些 Json
。我需要等待此方法结束 (HttpWebRequest.BeginGetRequestStream)
来分析我的 Json。
这是我的代码:
private string API_Query(string url)
{
HttpWebRequest requete = (HttpWebRequest)HttpWebRequest.Create(url);
requete.Method = "POST";
requete.ContentType = "application/x-www-form-urlencoded";
requete.BeginGetRequestStream(DebutReponse, requete);//wait the end of this method
//analyse the json here
return null;
}
问题是我不知道如何等待方法结束。我尝试了不同的东西,例如 Task 和 Thread,但我不确定如何正确地完成它。
感谢您的帮助。
最佳答案
The problem is that I don't know how to wait the end the method.
有很多方法可以做到这一点。在我看来,您想同步调用请求,我建议您简单地调用 GetResponseStream
:
private string ApiQuery(string url)
{
HttpWebRequest requete = (HttpWebRequest)HttpWebRequest.Create(url);
requete.Method = "POST";
requete.ContentType = "application/x-www-form-urlencoded";
using (var requestStream = requete.GetRequestStream())
{
// Write to request stream
}
using (var responseStream = requete.GetResponse())
{
// Read the respone stream, parsing out your JSON.
}
}
编辑:
正如您在评论中提到的,这是一个 Silverlight 项目。这意味着您没有 HttpWebRequest
的同步版本。相反,您可以使用 WebClient
:
var webClient = new WebClient()
webClient.OpenReadCompleted += OnUploadCompleted;
webClient.OpenReadAsync(url, data);
private void OnUploadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error != null)
{
// Error, do something useful
return;
}
using (var responseStream = e.Result)
{
byte[] data = (byte[]) e.UserState;
// Read response from stream.
}
}
关于c# - 等待 HttpWebRequest.BeginGetRequestStream 结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29863606/
我正在使用线程池调用一些异步 Web 请求调用来发布数据 我在 for 循环中调用 RunWebAccess 函数 public void RunWebAccess (string strdara,
我在任务工厂内部调用 httpwebresponse,执行 1 次后抛出异常 无法在上一个调用仍在进行时重新调用 BeginGetRequestStream/BeginGetResponse 我的代码
我是 silverlight 新手。我正在针对 Windows Phone 的 Visual Studio 2010 中进行编程。我尝试执行 HttpWebRequest 但调试器显示 Protoco
我正在尝试使用 HttpWebRequest.BeginGetRequestStream 方法。在我的方法中,我得到了一些 Json。我需要等待此方法结束 (HttpWebRequest.BeginG
我有一个这样的方法,它在使用 Task.Factory.FromAsync() 声明 responseObject 时挂起 private async Task post(string url, st
我正在使用 HttpWebRequest 的 BeginGetRequestStream 上传多个文件,但我想更新我在发布数据流时编写的进度控件。 这应该如何完成,我尝试从将数据推送到流中的循环内调用
我是一名优秀的程序员,十分优秀!