2013-08-20 4 views
0

Я пытаюсь сохранить изображение захвата с iPhone на сервер. Я сделал с Xcode. код каквызов webservice с использованием NSMutableURLRequest в monotouch

NSMutableURLRequest *request= [NSMutableURLRequest requestWithURL:url]; 

[request setHTTPMethod:@"POST"]; 

NSString *boundary = @"---------------------------14737809831466499882746641449"; 

NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 

[request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 

NSMutableData *body = [NSMutableData data]; 

[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: attachment; name=\"%@\" filename=\"Test.png\"\r\n", imgName] dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[body appendData:[NSData dataWithData:imageData]]; 
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

[request setHTTPBody:body]; 

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:delegate]; 

Сейчас я стараюсь с MonoTouch,

здесь создать соединение, отправить запрос & получить ответ работает отлично.

Но здесь я не знаю, как установить Header & Тело NSMutableURLRequest, просто мне нужно знать, как передавать параметры (например, выше Xcode).

NSMutableUrlRequest request = new NSMutableUrlRequest(new NSUrl("http://url.com"), NSUrlRequestCachePolicy.ReloadRevalidatingCacheData, 20); 
request.HttpMethod = "POST"; 

var connectionDelegate = new TestNSURLConnectionDelegate(); 
var connection = new NSUrlConnection(request, connectionDelegate); 
connection.Start(); 

Может ли один помочь мне в этом ...

+0

если вы используете Xarmain, лучший подход заключается в использовании стандартных методов C# для выполнения вызова веб-службы (WebClient или HttpWebRequest), как и в любой другой программе .NET. – Jason

ответ

0

Использование system.net, чтобы получить доступ к HttpWebRequest.

Вам просто нужно отправить сообщение на url .. и записать байт [] изображения в тело запроса.

В моем примере .. Значение ServiceBase отображается в статической строке, а «Service.SubmitImage» - это статическая строка, указывающая на конечную точку метода службы.

public void SubmitImage(byte[] image) 
    { 
     var request = WebRequest.Create(ServiceBase + Service.SubmitImage); 
     request.Method = "POST"; 
     request.ContentType = "application/octet-stream"; 
     request.ContentLength = image.Length; 
     Stream str = request.GetRequestStream(); 
     str.Write(image, 0, image.Length); 
     str.Close(); 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    } 
Смежные вопросы