How to HTTP get/post request ?
Monkey Targets Forums/XNA/How to HTTP get/post request ?
| ||
| HttpRequest isn't implemented for XNA PC. And I can't find a solution here. What is the simplest way to Post data to a website ? |
| ||
| Hey Fred, sorry I missed this post. Here is some code I have been using request.cs:
public abstract class Request{
private string uri;
private HttpWebRequest request;
private HttpWebResponse response;
private Stream stream;
private StreamReader reader;
private Thread thread;
private string reply;
public abstract int OnReply(string reply);
public void Get( string url ){
uri = "http://" + url;
thread = new Thread(new ThreadStart(Run));
thread.Start();
}
public void Run()
{
try
{
request = (HttpWebRequest)WebRequest.Create(uri);
response = (HttpWebResponse)request.GetResponse();
stream = response.GetResponseStream();
reader = new StreamReader(stream,Encoding.UTF8);
reply = reader.ReadToEnd();
// todo: need game mutex
OnReply(reply);
}
catch (Exception e)
{
System.Console.Out.WriteLine("Get failed: "+e.ToString());
}
}
}
xnarequest.monkey: #If TARGET="xna" Import "request.cs" Extern Class Request Method Get(url$) Method OnReply(text$) End Public Interface IOnHttpRequestComplete Method OnHttpRequestComplete:Void( request:HttpRequest ) End Class HttpRequest Extends Request Field url$ Field get$ Field ready Field status Field response$ Field requestComplete:IOnHttpRequestComplete Method New( req0:String,url0:String,onComplete0:IOnHttpRequestComplete ) url=url0 get=req0 requestComplete=onComplete0 Receive 0,0,"" End Method Send() Get url End Method OnReply(text$) status=3 response=text requestComplete.OnHttpRequestComplete(Self) End Method Receive(ready0,status0,text$) ready=ready0 If ready=4 status=status0 response=text requestComplete.OnHttpRequestComplete(Self) Endif End Method Status() Return status End Method Ready() Return ready End Method ResponseText$() Return response End End #Else Import brl.httprequest #Endif At top of Program.cs add this #if WINDOWS using System.Net; #endif |