2017-10-26 5 views
8

मैं स्विफ्ट के लिए नया हूं। मैंने एक साधारण एप्लिकेशन बनाया जो सिम्युलेटर पर ठीक काम करता है। मैं अपने डिवाइस पर (आईओएस 11.0.2 के साथ आईफोन 6 एस) पर चल रहा हूं और यह सर्वर से कनेक्ट करने में विफल रहा है।टीआईसी टीसीपी कॉन मेरे फोन पर स्विफ्ट प्रोजेक्ट चलाते समय असफल रहा

इन त्रुटियों को मिल रहा है:

2017-10-26 18:16:02.489134-0400 myproj[1451:206438] TIC TCP Conn Failed [1:0x1c0176800]: 1:61 Err(61) 
2017-10-26 18:16:02.489771-0400 myproj[1451:206438] Task <0C30ADDC-4A0E-4815-A701-2EF0A7CF5F04>.<1> HTTP load failed (error code: -1004 [1:61]) 
2017-10-26 18:16:02.490293-0400 myproj[1451:206440] Task <0C30ADDC-4A0E-4815-A701-2EF0A7CF5F04>.<1> finished with error - code: -1004 

कृपया मेरी मदद इस त्रुटि को समझते हैं।

संपादित करें:

func postRequest(postData: NSDictionary, postHeaders: NSDictionary, endPoint: String, 
       onComplete: @escaping ((NSDictionary)->Void), callbackParams: NSDictionary = NSMutableDictionary()) { 
    let url:URL = baseUrl.appendingPathComponent(endPoint) 
    let session = URLSession.shared 
    let request = NSMutableURLRequest(url: url) 
    request.httpMethod = "POST" 
    request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringCacheData 
    var paramString = "" 
    for (key, value) in postData{ 
     paramString = paramString + (key as! String) + "=" + (value as! String) + "&" 
    } 

    request.allHTTPHeaderFields = postHeaders as? [String : String] 
    request.httpBody = paramString.data(using: String.Encoding.utf8) 

    let task = session.dataTask(with: request as URLRequest, completionHandler: { 
     (data, response, error) in 
     guard let _:Data = data, let _:URLResponse = response , error == nil else { 
      return} 
     let json: Any? 
     do { 
      json = try JSONSerialization.jsonObject(with: data!, options: []) 
     } 
     catch { 
      return 
     } 
     var serverResponse = json as? NSDictionary 
     DispatchQueue.main.async{ 
      for (key, value) in serverResponse!{ 
       callbackParams.setValue(value, forKey: key as! String) 
      } 
      onComplete(callbackParams) 
     } 
    }) 
    task.resume() 
} 

संपादित करें:

Adding screen shot of info.plist, I had set Allow Arbitrary Loads to True as indicated in other posts, but didn't solve धन्यवाद

यहाँ कोड बनाने कि सर्वर के लिए कहते हैं!

+0

आपको अपना कोड प्रदान करने की आवश्यकता है। और टीआईसी क्या है? – hasan83

+0

@ hasan83 "टीआईसी टीसीपी कॉन असफल" एक मूलभूत कॉन्फ़िगरेशन समस्या होने पर उत्पन्न एक मानक त्रुटि है (उदाहरण के लिए मैंने इसे मैकोज़ ऐप्स में देखा है जहां इसे सैंडबॉक्स नहीं किया गया है और आउटबाउंड नेटवर्क कनेक्शन आदि शुरू करने की अनुमति दी गई है) । – Rob

+0

आर आप http या https से कनेक्ट हो रहे हैं?यदि इसके http को आपको अपने सर्वर यूआरएल को प्लास्ट – hasan83

उत्तर

14

त्रुटि -1004 URLError.cannotConnectToHost है। यह किसी कारण से सर्वर से कनेक्ट नहीं हो सकता है।

टिप्पणियों में, आप कहते हैं कि यूआरएल http://127.0.0.1 है। यह वर्तमान मशीन है localhost है। यदि आप किसी भौतिक फोन पर उस यूआरएल का उपयोग करते हैं, तो यह फोन पर वेब सर्वर की तलाश करेगा। लॉल। यह सिम्युलेटर पर काम करता है, क्योंकि सिम्युलेटर आपके कंप्यूटर, localhost है।

आपको एक यूआरएल चाहिए जो आपका आईफोन आपकी वेब सेवा चलाने वाली मशीन को हल कर सके। उदाहरण के लिए, यह पता लगाएं कि आपके स्थानीय नेटवर्क पर वेब सेवा चलाने वाले कंप्यूटर के लिए आईपी क्या है, सुनिश्चित करें कि आपका आईफोन एक ही नेटवर्क पर वाईफाई पर है, और उसके बाद उस कंप्यूटर पर अपने अद्वितीय आईपी नंबर का उपयोग करें (संभवतः कुछ और 192.168.0.x)।

+0

लॉल कोर्स है ... बिना फोन के अंधेरे से चल रहा था क्योंकि मैं बिना एक्सकोड सिम्युलेटर से कर रहा था के माध्यम से सोच रहा है .. बिल्कुल सही .. बहुत रोब धन्यवाद! अब सब अच्छा है! – Aster

0

जब मैं सॉकेट संदेशों को भेज रहा/प्राप्त कर रहा था तो मुझे वही समस्या मिल रही थी! मैं पुश के लिए सॉकेट.ओ और फायरबेस का उपयोग कर रहा हूं और त्रुटि node.js बैकएंड पर थी। त्रुटि यह थी कि mongoose संस्करण को बहिष्कृत कर दिया गया था। जब भी यह त्रुटि आईओएस एंड पर उत्पन्न होती है, तो लाल रंग क्रैश लॉग देखने के लिए node.js बैकएंड टीम से पूछें। वे निश्चित रूप से इस त्रुटि को सामने के कारण होने वाली समस्या का पता लगाएंगे। उम्मीद है की यह मदद करेगा !!

0

मेरे मामले में मैं स्थानीय होस्ट आईपी पता नहीं बदल रहा हूं।

Example : @"http://Localhost/Host name/index.pnp/apiname?"; 

शुरू में मैं ऊपर दिया गया URL इस्तेमाल किया हूँ, तो मैं एक ही त्रुटि मिली हूँ ...

बाद में मैं में बदल 190.177.0.22

Example : @"http://190.177.0.22/Host name/index.pnp/apiname?"; 
0

एक और कोने मामले को स्थानीय होस्ट करने के लिए यदि आप ngrok की तरह कुछ उपयोग करते हैं और यह अभी भी काम नहीं कर रहा है तो फोन किसी सेवा प्रदाता नेटवर्क या वाईफ़ाई से कनेक्ट नहीं है।

मेरे मामले में मेरा मुख्य फोन सर्विस फोन का दूसरा काम नहीं कर रहा था।

संबंधित मुद्दे