public class A{
public void SetJsonSource(string _Uri)
{
WebRequest req = WebRequest.Create(_Uri);
req.Method = "GET";
req.BeginGetResponse(ResponseCallback, req);
}
private void ResponseCallback(IAsyncResult result)
{
string JsonSource = "";
HttpWebRequest httpwenReq = (HttpWebRequest)result.AsyncState;
WebResponse webResponse = httpwenReq.EndGetResponse(result);
using (Stream stream = webResponse.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
JsonSource = reader.ReadToEnd();
}
}
}
public class B{
void GetSource(){
A a =new A();
a.SetJsonSource("****");
}
}
问题是怎么样得到ResponseCallback里面的JsonSource?
定义一个委托或函数,然后在ResponseCallback调用就可以了
public class A{
public string JsonSource { get; private set; }
public void SetJsonSource(string _Uri)
{
WebRequest req = WebRequest.Create(_Uri);
req.Method = "GET";
req.EndGetRequestStream(asynchronousResult)
req.BeginGetResponse(ResponseCallback, req);
}
private void ResponseCallback(IAsyncResult result)
{
//string JsonSource = "";
HttpWebRequest httpwenReq = (HttpWebRequest)result.AsyncState;
WebResponse webResponse = httpwenReq.EndGetResponse(result);
using (Stream stream = webResponse.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
JsonSource = reader.ReadToEnd();
}
}
}
public class B{
void GetSource(){
A a =new A();
a.SetJsonSource("****");
a.JsonSource;
}
}