2014-09-01 10 views
1

하늘색 API 엔드 포인트로 작업하고 있습니다. ....azure-api.net/.... Charles 프록시를 사용하여 HTTP 요청/응답을 보려고하면 HTTP 응답이 비어 있습니다. 요청을 프록시를 끌 때 작동합니다.우리는 푸른 끝점을 어떻게 조롱합니까?

자동화 테스트의 목적으로 요청을 가로 채고 응답을 모의하기를 원합니다.

나는 Charles 프록시를 사용하여 다른 서버로 다른 HTTP 엔드 포인트를 볼 수 있습니다. 그래서 나는 청색에 관한 특별한 것이있어 요청이 완료되지 못하게한다고 믿습니다.

  • azure는 중간에 프록시가 있다는 것을 어떻게 알 수 있으며 클라이언트와 통신하지 않습니다.
  • Charles API가 작동하도록 Azure API를 구성해야합니까? (HTTP 트래픽보기는 개발에 유용하기 때문에)
  • 하늘색 트래픽을 조롱하는 또 다른 방법이 있습니까? 예 : 호스트 리디렉션?

나는

NSURL *url = [NSURL URLWithString:@"https://MyDomain.azure-api.net/a/b/2?subscription-key=myKey"]; 

[[[NSURLSession sharedSession] dataTaskWithRequest:[NSURLRequest requestWithURL:url] 
           completionHandler: 
    ^(NSData *data, NSURLResponse *response, NSError *error) { 

    NSLog(@"%@, error: %@", [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding], error); 
    ; 

}] resume]; 

아래 찰스 프록시에서 스크린 샷은 코드

네트워킹 표준 아이폰 OS를 사용하고 있습니다. 연결 요청 후 응답이 없습니다.

Request

+0

Windows 플랫폼에서 작업하는 경우, Fiddler (http://www.telerik.com/download/fiddler)를 사용하여 HTTP 트래픽을 가져 오려고 했습니까? 나는 Fiddler로 처리 할 수없는 웹 트래픽을 보지 못했습니다. – astaykov

+0

iOS 앱에서 어떤 요청을 하시겠습니까? 코드 내에서 JSON 응답에 액세스 할 수 있습니까? – Moxy

+0

@Moxy - 우리는'AFNetworking' 래퍼와 함께'NSURLConnection'을 사용합니다. Charles가 실행 중이 아닐 때 요청과 응답을 코드로 볼 수 있습니다. Charles가 실행 중일 때 SSL 오류로 연결이 실패합니다. – Robert

답변

0

요청을 가로 채고 가짜 응답을 반환하기 위해, 당신은 엑스 코드에서 디버깅 할 때 응답을 기록해야 하나, OHHTTPStubs

이 그것을 할 수있게 될하기 위해 사용하거나 문서를 사용할 수 있습니다 .

당신이 테스트를 실행하기 전에,

stub = [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest *request) { 
      return [request.URL.absoluteString isEqualToString:@"https://MyDomain.azure-api.net/a/b/2?subscription-key=myKey"]; 
     } 
          withStubResponse:^OHHTTPStubsResponse *(NSURLRequest *request) { 
              NSString *fixture = OHPathForFileInBundle(@"fakeResponse.json", nil); 
              return [OHHTTPStubsResponse responseWithFileAtPath:fixture 
                        statusCode:200 
                         headers:@{@"Content-Type":@"text/json"}]; 
             }]; 

전화 그리고 당신은 당신의 테스트를 실행 한 후에는 파일 이 테스트 대상 만 추가해야합니다

[OHHTTPStubs removeStub:stub]; 

"fakeResponse.json"을 호출해야합니다이고 다른 JSON 파일을 사용하여 다른 테스트를 수행 할 수 있습니다. 예를 들어 오류 또는 빈 콘텐츠가있는 JSON을 전달하면 응용 프로그램이 원하는대로 동작하는지 테스트 할 수 있습니다.