locked
C# WP8.1 Richiesta esempio di uso della classe HttpClient con metodo Post e Get RRS feed

  • Domanda

  • Salve a tutti,

    sto cercando di realizzare un'app su Windows Phone 8.1 in C# con la quale necessito di collegarmi ad un server web e passare/ricevere dati via Http.

    Il server web è scritto in php.

    Gentilmente qualcuno potrebbe farmi un esempio di come si può realizzare questo con questa classe?

    Ho cercato molto su Internet ma non ho trovato nulla che per me fosse abbastanza chiaro e mi permettesse quindi di capirlo ed adattarlo al mio uso.

    Grazie in anticipo

    domenica 1 febbraio 2015 17:32

Tutte le risposte

  • ciao io ho utilizzato tempo fà un meccanismo basato su delle callback  ( GetRequestStreamCallback  GetResponseCallback)

    ti aggiungo uno spezzone di codice che mi ero salvato, cmq trovi tanti esempi su internet

     internal void StartReqBO2()
    {
    	InternalHttpRequest = (HttpWebRequest)WebRequest.Create(url);
    	InternalHttpRequest.Method = method;
    	internalBoundary = NewDataBoundary();
    	InternalHttpRequest.ContentType = "multipart/form-data; boundary=" + internalBoundary;
    	InternalHttpRequest.ContentLength = postData.Length;
    	InternalHttpRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), InternalHttpRequest);
    }
    		
    		
    private void GetRequestStreamCallback(IAsyncResult asynchronousResult)
    {
    	HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
    	/// ALLEGO DATI DA INVIARE
    	formDataStream = request.EndGetRequestStream(asynchronousResult);
    	formDataStream.Write(Encoding.UTF8.GetBytes(postData), 0, postData.Length);
    	formDataStream.Close();
    	request.BeginGetResponse(new AsyncCallback(GetResponseCallback), request);
    	if (formDataStream != null)
    	{
    		formDataStream.Close();
    	}
    }
    		
    		
    		
    private void GetResponseCallback(IAsyncResult asynchronousResult)
    {
    	Stream streamResponse = null;
    	StreamReader streamRead = null;
    	HttpWebResponse response = null;
    	HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
    	response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
    	streamResponse = response.GetResponseStream();
    	streamRead = new StreamReader(streamResponse);
    	string responseString = streamRead.ReadToEnd();
    	resultHttpResponse = responseString;
    	if (streamResponse != null)
    	{
    		streamResponse.Close();
    	}
    
    	if (streamRead != null)
    	{
    		streamRead.Close();
    	}
    
    	if (response != null)
    	{
    		response.Close();
    	}
    
    }

    giovedì 5 febbraio 2015 11:21