2016-04-27 11 views
0

私たちは、ログイン画面のために休憩Webサービスを呼び出す必要があるアプリケーションを持っています。私たちはこのエラーを取得した後、我々は他を受け取ることができませんiOS休憩Webサービス無効なホストエラーを返す

<HTML><HEAD><TITLE>Invalid Host Specified</TITLE></HEAD> 
<BODY>The request did not specify a valid virtual host.</BODY></HTML> 

:このWebサービスを呼び出している間、私たちは時折、結果を受け取ることができますが、何回も、私たちは、次のようなメッセージでヌルデータを取得しています結果が表示され、アプリがログイン画面に表示されなくなります。我々は、アプリケーションを閉じて、それを開いて、Webサービスが動作するかどうかを再度試してみる必要があります。

このエラーの原因は何ですか?結果を受け取るのにNSURLConnectionNSURLSessionの両方を試しましたが、どちらも同じ問題があります。誰かがこれに対する解決策を提示するか、少なくとも問題を解決するために正しい方向に向けると、本当に役に立ちます。すべての可能性で

-(void)startWebServiceForURL:(NSString *)URL withInputJson:(NSString *)inputJson forView:(UIView *)parentView completionBlock:(DownloadCompletionBlock)completionBlock errorHandlingBlock:(DownloadErrorBlock)ErrorBlock 
{ 

    if (_showIndicator) 
    { 

     UIWindow *window = [[[UIApplication sharedApplication] windows] lastObject]; 
     UIViewController *viewC = [window rootViewController]; 
     _progressIndicator = [MBProgressHUD showHUDAddedTo:viewC.view animated:YES]; 

    } 


    _completion = completionBlock; 
    NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:URL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

    [request setValue:[NSString stringWithFormat:@"%lu",(unsigned long)[inputJson length]] forHTTPHeaderField:@"Content-Length"]; 

    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 

    [request setHTTPMethod:@"POST"]; 

    [request setHTTPBody:[inputJson dataUsingEncoding:NSUTF8StringEncoding]]; 
    [request setTimeoutInterval:60.0f]; 

    NSURLSession * session = [NSURLSession sharedSession]; 

    [[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

     dispatch_async(dispatch_get_main_queue(), 
         ^{ 
          if (_showIndicator) 
          { 
           [_progressIndicator hideAnimated:YES]; 
          } 


          if (!error && data != nil) 
          { 
           NSLog(@"result received!!!"); 

           NSError * error1; 

           { 
            NSLog(@"print something else"); 

            NSString* newStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

            NSLog(@"new string: %@", newStr); 

            NSDictionary * jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error1]; 

            NSLog(@"received data: %@", jsonDictionary); 

            if (!error1) 
             _completion(YES,jsonDictionary); 
            else 
            { 
             _error = ErrorBlock; 
             _error(error1); 
            } 
           } 

          } 
          else 
          { 
           NSLog(@"error receiving result"); 
           _error = ErrorBlock; 
           _error(error); 

           if (error.domain == NSURLErrorDomain && error.code == NSURLErrorNotConnectedToInternet) 
           { 
            NSLog(@"not connected"); 
           } 
          } 
         }); 


    }] resume]; 
} 
+0

あなたがしようとしていることを人々が見ることができるように、おそらくコードを投稿する必要があります。私はあなたの記述だけで十分に誰にでも行くことを疑うことはありません – Flexicoder

+0

あなたは確かに、このエラーはNSURLConnectionまたはNSURLSessionに関連していますか?ヒント:Webサービスはどうですか? – CouchDeveloper

+0

@CouchDeveloper - iOS 8より前に頻繁に使用していたので、NSURLConnectionをチェックしました。 –

答えて

0

、次のすべてに該当する:

  • あなたは、OracleのWebに接触している

    この

    は、私は、Webサービスを呼び出すために使用している機能ですサーバ。
  • 複数のドメイン名は、そのサーバーのIPアドレスを指します。
  • これらのうちの1つは、Webサーバーの構成ファイルにリストされていません。
  • これは、あなたのアプリがアクセスしようとしているドメインです。

唯一の可能性は、IPアドレスでホストにアクセスしようとしているか、HTTPヘッダーが不足しているHTTP/1.0要求を行っていることです。

関連する問題