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 |