2014-02-17 1 views
2

저는 Xamarin Studio를 처음 접했습니다. 그리고 내가 Xamarin (C#)으로 작성된 다른 코드에서 Objective C로 작성한 코드에서 기능을 사용해야한다.Objective C에서 Xamarin Studio의 HttpWebRequest 클래스 대체 란 무엇입니까?

Xamarin 코드에서 Image의 바이트 스트림이 HttpWebRequest 인스턴스에 연결됩니다. 처리 된 이미지를 얻으려면 서버에 게시해야합니다.

나는 자 마린

using (Stream requestStream = httpWebRequest.GetRequestStream()){} 

합니까의 코드로 동일한 기능을 사용하는 방법을 찾을 수없는 것입니다. 다음과 같이

내 자 마린 코드는 다음과 같습니다 -

내가 수집하고 구현 수있는 것을 인터넷을 통해 검색에서
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create (string.Concat (new string[] 
     { 
      Common.BaseAddress, 
      "visualize/", 
      GenericHelper.ServiceEncrypt (Common.Token), 
      "/", 
      Common.AppTag, 
      "/", 
      Common.ConstructTreatmentSelections() 
     })); 
     httpWebRequest.Method = "POST"; 
     httpWebRequest.ContentType = "application/x-www-form-urlencoded"; 
     using (Stream requestStream = httpWebRequest.GetRequestStream()) 
     { 
      int num = 2048; 
      int i = 1; 
      int num2 = pBytePhotoImage.Length; 
      while (i < num2) 
      { 
       if (i + num > num2) 
       { 
        num = num2 - i; 
       } 
       requestStream.Write (pBytePhotoImage, i - 1, num); 
       float fProgress = (float)i/(float)num2; 
       if (fProgress <= 1f) 
       { 
        nSAutoreleasePool.InvokeOnMainThread (delegate 
        { 
         pProgressBar.set_Progress (fProgress); 
        }); 
       } 
       else 
       { 
        nSAutoreleasePool.InvokeOnMainThread (delegate 
        { 
         pProgressBar.set_Progress (1f); 
        }); 
       } 
       i += num; 
      } 
      nSAutoreleasePool.InvokeOnMainThread (delegate 
      { 
       pAnimationImage.StartAnimating(); 
      }); 
     } 

했다 : - 다음과 같이

내 목표 C 코드는 다음과 같습니다 -

NSData *data = UIImageJPEGRepresentation(self.imageView.image, 0.2); 
NSString *webServiceURL = @"https://webserviceNameBaseAddress/visualize/lEr0WKCdarv2FLGFvBRbhs41FN7zhgcdiwuEqFtLQINJ|PQpM8HEGQ~~/ios/SL|VL|OC|ML|"; 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ; 
[request setURL:[NSURL URLWithString:webServiceURL]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:data]; 
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData * responseData, NSError *err) { 
    NSLog(@"URL Response"); 
    if (err) { 
     NSLog(@"Err %@",err.description); 

    }else 
    { 

     if (responseData) { 
      NSLog(@"%@",[UIImage imageWithData:responseData]); 
     } 
     else{ 
      NSLog(@"not returning anything"); 
     } 
    } 
}]; 

Xcode에서 코드를 실행하면 출력은 다음과 같습니다. -

Error Domain=NSURLErrorDomain Code=-1000 "bad URL" UserInfo=0x75a9ea0 {NSUnderlyingError=0x7189250 "bad URL", NSLocalizedDescription=bad URL} 

도움이 될 것입니다. 이틀이 지나서야 붙어 있습니다.

PS : - Xamarin App Code에서 POST 요청을위한 webService URL을 추출합니다. 내가 한 것은이었다 난 자 마린 에서 Consol.WriteLine()의 도움으로 URL 문자열을 인쇄 한 후 NSMutableURLRequest

+1

이것은 ios 보안입니다. 어쩌면이 도움이 될 것입니다 http://stackoverflow.com/questions/6287230/bad-url-when-requesting-with-nsurl 또는 http://stackoverflow.com/questions/10782591/nsurlerrordomain-code-1000-bad-url- 무슨 뜻입니까? - 정말 - 의미 - –

+0

나는 무엇이 작동하고 무엇이 아닌지 이해하지 못합니다. ObjC 버전은 괜찮지 만 C# 버전은 그렇지 않습니까? 혹은 그 반대로도? Xcode에서 오류가 발생하면 분명히 Xamarin을 사용하지 않는 것입니다. 혼란 스럽습니다. – Krumelur

+0

그는 C# 코드를 ObjC로 변환하려고합니다. 모든 코드를 사용할 수있는 것은 아니기 때문에 무엇이 잘못되었는지를 판단하기가 어렵습니다. 연결하려는 서버 주소 : "webserviceNameBaseAddress"입니까? – SKall

답변