c# - microsoft - visual studio installer
Realice una solicitud posterior http para enviar un archivo JSON en WP7 (1)
Me gustaría enviar un JSON file from my WP7 device to my local server
. En iOS utilicé la biblioteca ASIHttpRequest
y lo que hice fue:
//send json file , using ASIHttpClass
NSURL *url = [NSURL URLWithString:urlStr];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
request.timeOutSeconds = TIME_OUT_SECONDS;
[request setRequestMethod:@"PUT"];
NSString *credentials= [self encodeCredentials];
[request addRequestHeader:@"Authorization" value:[[NSString alloc] initWithFormat:@"Basic %@",credentials]];
[request addRequestHeader:@"Content-Type" value:@"application/json; charset=utf-8"];
[request appendPostData:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[request startSynchronous];
if([request responseStatusCode]==200){
return true;
} else {
return false;
}
¿Cómo podría implementar la misma funcionalidad en mi aplicación WP7?
Lo que he encontrado hasta ahora y creo que estoy cerca:
//Making a POST request using WebClient.
Function()
{
WebClient wc = new WebClient();
var URI = new Uri("http://your_uri_goes_here");
wc.Headers["Authorization"] = "Basic (here goes my credentials string which i have)";
wc.Headers["Content-Type"] = "application/json; charset=utf-8";
wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);
wc_cart_session.UploadStringAsync(URI,"POST","Data_To_Be_sent");
}
dónde :
void wc__UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
try
{
MessageBox.Show(e.Result);
//e.result fetches you the response against your POST request.
}
catch(Exception exc)
{
MessageBox.Show(exc.ToString());
}
}
Supongo que el "Data_to_be_Sent" debería ser el jsonString en la codificación utf8?
EDITAR
Me di cuenta de que el "Data_To_Be_sent"
es una cadena. Sin embargo, esto debería estar en codificación UTF8 ¿verdad? Entonces debería ser una matriz de bytes que están en formato UTF8. Sin embargo, solo puedo colocar una cadena allí. que me estoy perdiendo aqui?
La clase WebClient
tiene una propiedad de Codificación que utilizan los métodos UploadStringAsync
y DownloadStringAsync
. Establezca su codificación allí.
wc.Encoding = Encoding.UTF8;
wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);
wc.UploadStringAsync(URI,"POST","Data_To_Be_sent");