I am new to both C# and Windows phone and am trying to make a small app that performs a JSON request. I am following the example in this post https://stackoverflow.com/a/4988809/702638
My current code is this:
public string login()
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create(MY_URL);
httpWebRequest.ContentType = "text/plain";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string text = MY_JSON_STRING;
streamWriter.Write(text);
}
}
but for some reason Visual Studio is flagging GetRequestStream()
with an error message:
error CS1061: 'System.Net.HttpWebRequest' does not contain a definition for 'GetRequestStream' and no extension method 'GetRequestStream' accepting a first argument of type 'System.Net.HttpWebRequest' could be found (are you missing a using directive or an assembly reference?)
Any thoughts on why this would be happening? I have already imported the System.Net
package.
GetRequestStream() Gets a Stream object to use to write request data. GetRequestStream(TransportContext) Gets a Stream object to use to write request data and outputs the TransportContext associated with the stream.
The HttpWebRequest class provides support for the properties and methods defined in WebRequest and for additional properties and methods that enable the user to interact directly with servers using HTTP.
HttpWebRequest doesn't have a GetRequestStream or GetRequestStreamAsync in WP8. Your best bet is to create a Task and await on it, like so:
using (var stream = await Task.Factory.FromAsync<Stream>(request.BeginGetRequestStream, request.EndGetRequestStream, null))
{
// ...
}
Edit: as you've mentioned that you're new to C#, you would need to have your login method be async to use the await keyword:
public async Task<string> LoginAsync()
{
// ...
}
Callers to login would need to use the await keyword when calling:
string result = await foo.LoginAsync();
Here's a good primer on the subject: http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With