ত্রুটি ডোমেন = NSURLErrorDomain কোড = -1005 "নেটওয়ার্ক সংযোগটি হারিয়ে গেছে।"


268

আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা iOS7 এবং iOS8 উভয়ের সাথে Xcode6-Beta1 এবং Xcode6-Beta2 এ দুর্দান্ত কাজ করে। তবে Xcode6-Beta3, Beta4, Beta5 এর সাথে আমি iOS8 এর সাথে নেটওয়ার্কের সমস্যার মুখোমুখি হচ্ছি তবে iOS7 এ সবকিছুই ঠিকঠাক কাজ করে। আমি ত্রুটি পেয়েছি "The network connection was lost."। ত্রুটিটি নিম্নরূপ:

ত্রুটি: ত্রুটি ডোমেন = NSURLErrorDomain কোড = -1005 "নেটওয়ার্ক সংযোগটি হারিয়ে গেছে।" UserInfo = 0x7ba8e5b0 {NSErrorFailingURLStringKey =, _kCFStreamErrorCodeKey = 57, NSErrorFailing URLKey =, NSLocalizedDescription = নেটওয়ার্ক সংযোগটি নষ্ট হয়ে গেছে।

নেটওয়ার্ক কল করার জন্য আমি AFNetering 2.x এবং নিম্নলিখিত কোড স্নিপেট ব্যবহার করি:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager setSecurityPolicy:policy];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

[manager POST:<example-url>
   parameters:<parameteres>
      success:^(AFHTTPRequestOperation *operation, id responseObject) {
          NSLog(@“Success: %@", responseObject);
      } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
          NSLog(@"Error: %@", error);
      }];

আমি চেষ্টা করেছি NSURLSessionকিন্তু তবুও একই ত্রুটি পেয়েছি।


কোন হালনাগাত ? এটি কেবলমাত্র আইওএস 8-এ আমার জন্য ওয়াইফাই-তে ঘটে থাকে, তবুও একটি কাজের সন্ধানের চেষ্টা করা হয়।
ডিমিলিয়ান


কেউ কি সাহায্য আমার সমস্যা, প্রায় একই সমস্যা কিন্তু বিভিন্ন ত্রুটি কোড, সমাধান পারি stackoverflow.com/questions/26972822/...
iYoung

1
আইওএস 10.0.1 এবং এক্সকোড 8 এর সাথে একই সমস্যার মুখোমুখি
সত্যেশ্বরান

1
আমি আজ সকালে এই ত্রুটি পেয়েছি এবং একটি সহজ এবং অদ্ভুত সমাধান দিয়ে ঠিক এখনই এটি ঠিক করেছি। অনুরোধ করা সার্ভারের ঠিকানাটি ভুল, কোনও 4XX বা 5xx স্থিতি কোড ফেরত পাওয়া যায়নি, এটি কেবল এই সমস্যার মুখোমুখি হয়েছে, মূল কারণটি ঠিক কী তা নিশ্চিত নয়। সুতরাং, দয়া করে আপনার দলের ব্যাকএন্ড বিকাশকারীদের সাথে নিশ্চিত করুন বা আপনি এটিতে কয়েক ঘন্টা নষ্ট করবেন।
Itachi

উত্তর:


414

সিমুলেটরটি পুনরায় চালু করা আমার জন্য সমস্যাটি স্থির করে।


3
এই সমস্যাটি যদি ডিভাইসে থাকে তবে সিমটি কী হবে? ডিভাইসটি পুনরায় চালু করার চেষ্টা করা হচ্ছে, এখনও একই ত্রুটি।
শন ক্লার্ক

2
@ সিয়েন ক্লার্ক: পরবর্তী উত্তরটি দেখুন: সিমুলেটরটি রিবুট করা কাজ করে কারণ সার্ভারের দ্বারা নামিয়ে দেওয়ার পরে ওএসগুলি পুনরায় ব্যবহারের চেষ্টা করার পরিবর্তে মৃত সংযোগটি ফেলে দিতে হবে। এই ইস্যুটি সম্পর্কে কাজ করার জন্য, আপনি আইওএস ক্লায়েন্টদের জন্য সার্ভারে কিপ-লাইভ মেকানিজমটি অক্ষম করতে পারেন, বা, যদি আপনার সার্ভারটিতে অ্যাক্সেস না থাকে, আপনি ব্যর্থ হলে কেবল একই অনুরোধটি আবার চেষ্টা করতে পারেন (ব্যর্থ হওয়া উচিত ওএস সংযোগটি ফেলে দেয় এবং পুনরায় চেষ্টা প্রেরণ করা হলে একটি তাজা তাত্ক্ষণিক হয়)।
আর্থার

আমি বর্তমানে এক্সকোড .2.২ ব্যবহার করছি এবং এটি সমাধান করে আইওএস সিমুলেটর> সেটিংস এবং রিসেট রিসেট করুন was এটি শেষ হয়ে গেলে আমি সিমুলেটরটি ছেড়ে দিয়ে আবার আমার প্রকল্পটি পুনরায় তৈরি করে চালিত করি ... পরে সবকিছু ঠিকঠাক কাজ করেছিল worked
কিংপলিগন

সিমুলেটরটি পুনরায় সেট করতে আমার পক্ষে কাজ হয়েছে তবে সময় মাত্র 10%। আমি সবেমাত্র একটি নতুন আইএসপি পেয়েছি এবং এটি দারুণ অদ্ভুতভাবে চলে। সিমুলেটারে এখন সব সময় এটি ঘটে। নেটওয়ার্ক হতে পারে।
noobsmcgoobs

1
রিসেট করা সিমুলেটরটি আমার পক্ষে কাজ করে না। তবে চার্লস অদৃশ্য হয়ে যাওয়ার বিষয়টি তৈরি করে। স্ট্যাকওভারফ্লো.com/a/26066764/598057 দেখুন যা চার্লস ব্যবহার করার পরামর্শ দেয়। খুব আশ্চর্যজনক তবে কাজ করে ...
স্ট্যানিস্লাভ পাঙ্কেভিচ

231

আমাদের এই সঠিক ত্রুটি ছিল এবং এটি অন্তর্নিহিত HTTP প্রয়োগের সাথে একটি সমস্যা হিসাবে পরিণত হয়েছিল NSURLRequest:

যতদূর আমরা বলতে পারি, আইওএস 8/9/10/11 যখন কোনও Keep-Aliveশিরোনামের সাথে এইচটিটিপি প্রতিক্রিয়া পায় , এটি এই সংযোগটি পরে পুনরায় ব্যবহার করতে রাখে (যেমনটি হওয়া উচিত) তবে এটি এটি timeoutপ্যারামিটারের চেয়ে বেশি রাখে কিভ-অ্যালাইভ শিরোনাম (এটি সর্বদা 30 সেকেন্ডের জন্য সংযোগটি জীবিত রাখবে বলে মনে হয়)) তারপরে 30 সেকেন্ডেরও কম পরে অ্যাপ্লিকেশন দ্বারা যখন দ্বিতীয় অনুরোধটি প্রেরণ করা হয়, তখন এটি কোনও সংযোগটি পুনরায় ব্যবহার করার চেষ্টা করে যা সার্ভারের দ্বারা ফেলে দেওয়া হতে পারে (যদি Keep-Aliveবাস্তবের চেয়ে বেশি কেটে যায়)।

আমরা এখন পর্যন্ত যে সমাধানগুলি পেয়েছি তা এখানে:

  • সার্ভারের সময়সীমা পরামিতি 30 সেকেন্ডের উপরে বাড়ান। দেখে মনে হচ্ছে আইওএস সর্বদা এমন আচরণ করছে যেন কিপ-অ্যালাইভ শিরোনামে প্রদত্ত মান নির্বিশেষে সার্ভারটি 30 সেকেন্ডের জন্য সংযোগটি উন্মুক্ত রাখবে। ( KeepAliveTimeoutবিকল্পটি সেট করে এটি অ্যাপাচি এর জন্য করা যেতে পারে ।
  • আপনি সহজেই আপনার অ্যাপ্লিকেশনটির ব্যবহারকারী-এজেন্টের ভিত্তিতে আইওএস ক্লায়েন্টদের জন্য জীবিত রাখার ব্যবস্থাটি অক্ষম করতে পারেন (উদাহরণস্বরূপ অ্যাপাচি: BrowserMatch "iOS 8\." nokeepaliveমোড ফাইলটিতে setenvif.conf)
  • যদি আপনার সার্ভারে অ্যাক্সেস না থাকে, আপনি একটি Connection: closeশিরোনাম দিয়ে আপনার অনুরোধগুলি প্রেরণের চেষ্টা করতে পারেন : এটি সার্ভারকে তত্ক্ষণাত সংযোগটি ফেলে দিতে এবং কোনও জীবন্ত শিরোনাম ছাড়াই প্রতিক্রিয়া জানাতে বলবে। কিন্তু এই মুহুর্তে, এনএসআরএলসেশনটি Connectionঅনুরোধগুলি প্রেরণের সময় শিরোনামটিকে ওভাররাইড করে বলে মনে হচ্ছে (আমরা অ্যাপাচি কনফিগারেশনটি টুইট করতে পারি তাই আমরা এই সমাধানটি ব্যাপকভাবে পরীক্ষা করিনি)

7
সমস্যাটি প্রমাণ করার জন্য এখানে একটি উদাহরণ প্রকল্প রয়েছে, অ্যাপলকেও একটি বাগ রিপোর্ট জমা দেওয়া হয়েছে। cl.ly/Xgkl/keep-alive-fail.zip প্রকল্পটি চালু করুন, প্রথম পোস্ট বোতামটি ক্লিক করুন (স্ক্রিনের শীর্ষে), 5 সেকেন্ড অপেক্ষা করুন, আবার এটিতে ক্লিক করুন, ত্রুটি।
ডিমিলিয়ান

5
বাঁচিয়ে রাখা দ্বিপক্ষীয়। ক্লায়েন্টরা একটি HTTP শিরোনাম যোগ করবে "সংযোগ: কিপ-জীবিত" ডিফল্টরূপে, ক্লায়েন্টের অনুরোধগুলিতে কিপ-লাইভ পরামিতি যুক্ত করতে সহায়তা করতে পারে; উদাহরণস্বরূপ "কিপ-অ্যালাইভ: সর্বোচ্চ = 1"। আর্থারের মন্তব্য অত্যন্ত সহায়ক তবে আইওএস 8 সিমুলেটর নেটওয়ার্কিংয়ে 1 টিরও বেশি সমস্যা নির্দেশ করে। অনুরোধ প্রেরণের আগে HTTP ব্যর্থ হওয়ায় আমাকে সংযোগ পেতে https ব্যবহার করতে হবে।
পিটিসি

5
ওহে ছেলেরা, ডিভাইসে আমার ঠিক একই সমস্যা হচ্ছে। এটা কি ঠিক করা যাবে? যদিও আইওএস 7 তে কোনও সমস্যা নেই।
আন্দ্রেস সি

9
টিপ: আপনি NSURLErrorNetworkConnectionLostহার্ড-কোডিংয়ের পরিবর্তে ধ্রুবকটি ব্যবহার করতে পারেন -1005
ভিনসেন্ট টুরেন

6
এই সমস্যাটি এখনও iOS 11.2.6 এ উপস্থিত রয়েছে।
মাকালেলে

47

আমার জন্য, Resetting content and settingsসিমুলেটর কাজ করে। সিমুলেটর পুনরায় সেট করতে পদক্ষেপগুলি অনুসরণ করুন:

আইওএস সিমুলেটর -> সামগ্রী এবং সেটিংস পুনরায় সেট করুন -> টিপুন রিসেট (সতর্কতা যা আসবে)


29

আইওএস 8.0 সিমুলেটর রানটাইমের একটি বাগ রয়েছে যার মাধ্যমে যদি সিমুলেটেড ডিভাইস বুট করার সময় আপনার নেটওয়ার্ক কনফিগারেশন পরিবর্তন হয় তবে সিমুলেটেড রানটাইমের উচ্চ স্তরের এপিআই (যেমন: সিএফ নেট নেটওয়ার্ক) ভাবেন যে এটি নেটওয়ার্ক সংযোগ হারিয়েছে। বর্তমানে, আপনার নেটওয়ার্কের কনফিগারেশনটি পরিবর্তিত হওয়ার পরে পরামর্শ দেওয়া কর্মটি হ'ল সিমুলেটেড ডিভাইসটি পুনরায় বুট করা।

আপনি যদি এই সমস্যার দ্বারা প্রভাবিত হন, তবে এটি অগ্রাধিকার বাড়ানোর জন্য দয়া করে অতিরিক্ত ডুপ্লিকেট রাডারগুলি http://bugreport.apple.com এ ফাইল করুন ।

নেটওয়ার্ক কনফিগারেশন পরিবর্তন না করে আপনি যদি এই সমস্যাটি দেখতে পান তবে এটি কোনও ত্রুটিযুক্ত ত্রুটি নয় এবং আপনার অবশ্যই একটি রাডার ফাইল করা উচিত, এটি ইঙ্গিত করে যে সমস্যাটি নেটওয়ার্ক-কনফিগারেশন-পরিবর্তিত বাগ নয়।


7
একটি ডিভাইসে আমারও এই সমস্যা আছে।
ড্যারেন

@दरেন তখন যে বিষয়টি আমি উল্লেখ করছি সেটি নয়। আমি আপনাকে একটি রাডার ফাইল করার পরামর্শ দিচ্ছি।
জেরেমি হাডলস্টন সিকোইয়া

4
দয়া করে আপনার রাডার আইডি অন্তর্ভুক্ত করুন যাতে এটি নকল ফাইল করা সহজ করে তোলে
ড্যানিয়েল গালাসকো

11

আমার জন্য যে সমস্যার সমাধান হয়েছিল তা হ'ল সিমুলেটর পুনরায় চালু করা এবং সামগ্রী এবং সেটিংস পুনরায় সেট করা।


এটি সিমুলেটরটি পুনরায় সেট করার আগে ম্যাকটি পুনরায় চালু করতে এবং ম্যাক পুনরায় চালু করতে সহায়তা করে। আমি প্রায়শই বিভিন্ন ওয়াইফাই স্পট সহ স্থানগুলি পরিবর্তন করি এবং এটি এমন একটি পদ্ধতি যা আমার জন্য সমস্যাটি স্থির করে।
ভ্লাদিমার স্লাভাক

11

আইওএস 8 সিমুলেটারে চলাকালীন বিটা 5 এবং এএফ নেটওয়ার্কিং 1.3 নিয়েও সমস্যা রয়েছে যার ফলে সংযোগের ত্রুটি হয়:

ডোমেন = NSURLErrorDomain কোড = -1005 "নেটওয়ার্ক সংযোগটি হারিয়ে গেছে।"

একই কোডটি আইওএস 7 এবং 7.1 সিমুলেটরগুলিতে দুর্দান্ত কাজ করে এবং আমার ডিবাগিং প্রক্সিটি দেখায় যে কোনও সংযোগ আসলে চেষ্টা করার আগে ব্যর্থতা ঘটে (যেমন কোনও অনুরোধ লগড করা হয়নি)।

আমি এনএসআরএল সংযোগে ব্যর্থতা সন্ধান করেছি এবং অ্যাপলকে বাগ রিপোর্ট করেছি। সংযুক্ত ছবিতে লাইন 5 দেখুন:

NSURL সংযোগ ক্লায়েন্ট প্রতিনিধি ত্রুটি ব্যর্থ হয়েছে

ব্যবহারের পরিবর্তনটি মাঝে মাঝে httpsত্রুটিযুক্ত হলেও আইওএস 8 সিমুলেটর থেকে সংযোগের অনুমতি দেয়।

এক্সকোড 6.01 (জিএম) এ এখনও সমস্যা রয়েছে।


আমি এনএসআরএলসেশন এবং এনএসআরএল সংযোগের ক্ষেত্রে একই সমস্যাটি দেখতে পাচ্ছি, এটি এএফ নেটওয়ার্কিংয়ের মাধ্যমে সমস্যাটিকে বাতিল করে দেয়। এছাড়াও আমি এটি https- র সাথে এবং http সহ ব্যর্থ হয়ে কাজ করেছি। আমি এখনও কোন সমাধান খুঁজে পাইনি, আপনি কি কোনও সমাধান পেয়েছেন?
ভয়েডস্ট্যাক

কোনও রেজোলিউশন কোনও বাগ হিসাবে রিপোর্ট করা হয়নি (18072300) https তে কাজ করার বিষয়ে মন্তব্য যুক্ত করবে যা ভাল তথ্য।
পিটিসি

আপনি কি এখানে বাগ লিঙ্কটি পেস্ট করতে পারেন? ধন্যবাদ কারণ আমি মনে করি আমারও একই সমস্যা আছে তবে আমি কেবল এনএসআরএল সংযোগ (এবং প্রতিনিধি) ব্যবহার করি তবে আমি একই ত্রুটি বার্তাটি
পাই

অ্যাপল বাগের প্রতিবেদনটি ভাগ করতে পারছে না। এখনও খোলা এবং এখনও এক্সকোডি 6 বিটাতে উপস্থিত 7.
পিটিসি

দেখে মনে হচ্ছে এই সমস্যাটি আইওএস সিমুলেটারে রয়েছে এবং আমি প্রকৃত ডিভাইসে ক্লান্ত হয়েছি এটি ভাল কাজ করে। আরও ডিবাগিংয়ের মধ্যে আমি দেখতে পেয়েছি আইওএস সিমুলেটারের বন্দর সম্পর্কে, https পোর্ট 443 ভাল কাজ করে এবং আমি ব্যর্থ হওয়ার জন্য HTTP এর জন্য 8080 ব্যবহার করছিলাম। আমি অন্যান্য পোর্ট (গুলি) ব্যবহার করার চেষ্টা করেছি এবং আইওএস সিমুলেটারে http কল করতে সক্ষম হয়েছি। বিটা
এক্সকোড

10

আমি অ্যালামোফায়ার ব্যবহার করার সময় এই সমস্যাটি অনুভব করছিলাম। আমার ভুলটি হ'ল আমি [:]প্যারামিটারগুলি GETপ্রেরণের পরিবর্তে কোনও অনুরোধে পরামিতিগুলির জন্য একটি খালি অভিধান পাঠাচ্ছিলাম nil

আশাকরি এটা সাহায্য করবে!


খালি বডি ডিকশনারি সহ GET এবং পোস্ট করুন [:] এলোমেলোভাবে এই ত্রুটি ঘটায়। আমি পাইথন ফ্লাস্কটি ব্যাকএন্ড REST এপিআইয়ের জন্য ব্যবহার করছি এটিও কার্যকর হতে পারে।
মাহমুদ ফয়েজ

10

চার্লস খোলার বিষয়টি আমার কাছে সমাধান হয়েছে, যা খুব অদ্ভুত বলে মনে হচ্ছে ...

চার্লস এমন একটি এইচটিটিপি প্রক্সি / এইচটিটিপি মনিটর / বিপরীত প্রক্সি যা কোনও বিকাশকারীকে তাদের মেশিন এবং ইন্টারনেটের মধ্যে থাকা সমস্ত এইচটিটিপি এবং এসএসএল / এইচটিটিপিএস ট্র্যাফিক দেখতে সক্ষম করে। এর মধ্যে অনুরোধ, প্রতিক্রিয়া এবং এইচটিটিপি শিরোনাম (এতে কুকিজ এবং ক্যাশে সম্পর্কিত তথ্য রয়েছে) অন্তর্ভুক্ত রয়েছে।


1
এটি আমার জন্যও কাজ করে, আমি মনে করি কারণ চার্লস প্রক্সির জন্য একটি এসএসএল শংসাপত্র ব্যবহার করে যে সুমুলেটার অনুরোধ করেছে এটি https ব্যবহারের জন্য অনুরূপ কৌশল করে
thisispete

1
এটি আমার জন্য প্রতিটি সময় কাজ করে! এটি 30 বার চেষ্টা করে দেখেছি এবং 30 এর মধ্যে 30 টি কাজ করে। আমি ভেবেছিলাম এটি ফ্লুক হয়েছে, তবে জেনে রাখা ভাল এটি কেবল আমার নয়।
jdog

2
চার্লস একটি প্রক্সি সরঞ্জাম যা আপনাকে আপনার মেশিন থেকে ট্র্যাফিক দেখতে দেয়। পরীক্ষা করে দেখুন charlesproxy.com বিস্তারিত জানার জন্য। চার্লস এসএসএল সার্টটি সিমুলেটারের নেটওয়ার্ক অনুরোধ করার ক্ষমতা নিয়ে গণ্ডগোল করতে পারে।
কলিন ট্রেম্বলে

@ কলিনট্রেম্বলে আমি মনে করি আপনার সিমুলেটর / ডিভাইস প্রক্সি ব্যবহারের জন্য কনফিগার করা হয়েছে। প্রক্সি সরানোও কাজ করবে।
বিক্রম990

হাস্যকরভাবে, এটি আমার পক্ষেও কাজ করেছিল। চার্লস খোলা থাকা দরকার এবং তারপরে আইওএস সিমুলেটর সেটিংস পুনরায় সেট করুন।
ম্যাট অ্যান্ড্রুজ

6

গিথুব এ 5 জানুয়ারীর উপর pjebs মন্তব্য দেখুন।

পদ্ধতি 1:

if (error.code == -1005)
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{

        dispatch_group_t downloadGroup = dispatch_group_create();
        dispatch_group_enter(downloadGroup);
        dispatch_group_wait(downloadGroup, dispatch_time(DISPATCH_TIME_NOW, 5000000000)); // Wait 5 seconds before trying again.
        dispatch_group_leave(downloadGroup);
        dispatch_async(dispatch_get_main_queue(), ^{
            //Main Queue stuff here
            [self redoRequest]; //Redo the function that made the Request.
        });
    });

    return;
}

এছাড়াও কিছু সাইটে পুনরায় সংযোগ করার পরামর্শ দেয়,

অর্থাত্ পোষ্টের অনুরোধটি দুটি করে ফায়ার করা

সমাধান: সাইটের সাথে সংযোগ করার জন্য একটি পদ্ধতি ব্যবহার করুন, রিটার্ন (আইডি) করুন, যদি নেটওয়ার্ক সংযোগটি হারিয়ে যায় তবে একই পদ্ধতিটি ব্যবহার করতে ফিরে আসুন।

পদ্ধতি 2

-(id) connectionSitePost:(NSString *) postSender Url:(NSString *) URL {
     // here set NSMutableURLRequest =>  Request

    NSHTTPURLResponse *UrlResponse = nil;
    NSData *ResponseData = [[NSData alloc] init];

    ResponseData = [NSURLConnection sendSynchronousRequest:Request returningResponse:&UrlResponse error:&ErrorReturn];

     if ([UrlResponse statusCode] != 200) {

          if ([UrlResponse statusCode] == 0) {

                  /**** here re-use method ****/
                  return [self connectionSitePost: postSender Url: URL];
          }

     } else {
          return ResponseData;
     }

}

পদ্ধতি 1 আমাকে অনেক সাহায্য করেছে .. ধন্যবাদ
অভিষেক মিত্র

4

আমি এই ত্রুটিটিও পেয়ে যাচ্ছিলাম, তবে সিমুলেটারের চেয়ে প্রকৃত ডিভাইসগুলিতে। এইচটিটিপিএস (গ্যানিকর্ন সার্ভার) এ আমাদের হিরকু ব্যাকএন্ডে অ্যাক্সেস করার সময় এবং বড় বডিগুলি (K৪ কেবি এরও বেশি কিছু) দিয়ে পোষ্টগুলি করার সময় আমরা ত্রুটিটি লক্ষ্য করেছি। আমরা প্রমাণীকরণের জন্য HTTP বেসিক didReceiveChallenge:অ্যাথ ব্যবহার করি এবং লক্ষ্য করেছি যে এনএসআরএলসেশনে প্রতিনিধি পদ্ধতিটি ব্যবহার না করে ত্রুটিটি সমাধান হয়েছে , বরং যুক্ত করার মাধ্যমে মূল অনুরোধ শিরোনামটিতে প্রমাণীকরণে বেকিং Authentiation: Basic <Base64Encoded UserName:Password>didReceiveChallenge:প্রতিনিধি বার্তাটি ট্রিগার করতে এটি প্রয়োজনীয় 401 প্রতিরোধ করে এবং পরবর্তী নেটওয়ার্ক সংযোগটি হারিয়ে গেছে।


আপনার মূল্যবান মন্তব্যের জন্য আপনাকে অনেক ধন্যবাদ। আপনি ঠিক বলেছেন আমি যদি 64 কেবি ইমেজের বেস 64 স্ট্রিংয়ের নীচে আপলোড করি তবে এটি সফলভাবে আপলোড হবে।
বিনায়ক ভোর

3

আমারও একই সমস্যা ছিল সমাধানটি সহজ ছিল, আমি সেট করেছি HTTPBody, তবে সেট HTTPMethodকরে নি POST। এটি ঠিক করার পরে, সবকিছু ঠিকঠাক ছিল।


3

আমারও একই সমস্যা ছিল। আমি জানি না কীভাবে এএফ নেটর্কেটিং https অনুরোধ কার্যকর করে, তবে আমার কারণ এনএসআরএলসেশন এর ক্যাশে সমস্যা।

আমার অ্যাপ্লিকেশনটি সাফারি থেকে ফিরে ট্র্যাক করার পরে এবং একটি http অনুরোধ পোস্ট করার পরে, "http লোড ব্যর্থ 1005" ত্রুটি উপস্থিত হবে। যদি আমি ব্যবহার বন্ধ করে দিই "[NSURLSession sharedSession]", তবে নিম্নলিখিত হিসাবে "ডেটাটাস্কউইট রিক্যুয়েস্ট:" পদ্ধতিতে কল করার জন্য একটি কনফিগারযোগ্য এনএসআরএলসেশন উদাহরণ ব্যবহার করার জন্য সমস্যাটি সমাধান হয়ে যায়।

NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;
config.URLCache = nil;
self.session = [NSURLSession sessionWithConfiguration:config];

শুধু সেট করতে মনে রাখবেন config.URLCache = nil;


1
আমি মনে করি ডিভাইস / সিমুলেটর পুনরায় চালু করা বা ডেটা পুনরায় সেট করা এই সমস্ত উত্তরগুলির উচিত। আমার কাছে তাদের সমস্ত ক্রিয়াকলাপ ক্যাশে মুছে ফেলা বলে মনে হচ্ছে যা সমস্যার সমাধান করে। সুতরাং এটি সম্ভবত ইউআরএল ক্যাশে সমস্যা। আমি এখন এটি পরীক্ষা করতে যাচ্ছি।
কামরান খান

2

আমাকে এক্সকোড থেকে প্রস্থান করতে হবে, ডেরিভেডডাটা ফোল্ডার সামগ্রী (~ / লাইব্রেরি / ডেভেলপার / এক্সকোড / ডেরিভডটা বা / লাইব্রেরি / বিকাশকারী / এক্সকোড / ডেরিভডটা) মুছে ফেলতে হয়েছিল এবং এই কাজটি করার জন্য সিমুলেটরটি প্রস্থান করতে হয়েছিল।


1
সেই তালিকার একমাত্র প্রাসঙ্গিক ক্রিয়া ছিল সিমুলেটরটি পুনরায় চালু করা। এক্সকোড পুনরায় আরম্ভ করা এবং ডেরিভড ডেটা মুছে ফেলা অত্যধিক।
জেরেমি হাডলস্টন সিকোইয়া

2

আইওএস 8 ডিভাইসে চলমান আমারও এই সমস্যা রয়েছে। এটি এখানে আরও বিশদযুক্ত এবং আইওএস এর একটি সংযোগ যা ইতিমধ্যে সময়সীমা শেষ হয়ে গেছে এমন সংযোগগুলি ব্যবহার করার চেষ্টা করছে বলে মনে হচ্ছে। আমার ইস্যুটি সেই লিঙ্কটিতে কীপ-অ্যালাইভ সমস্যাটি ব্যাখ্যা করার মতো নয়, তবে এটি একই শেষ ফলাফল বলে মনে হচ্ছে।

আমি যখনই কোনও ত্রুটি -১০৫ পেয়েছি তখন আমি পুনরাবৃত্তকারী ব্লকটি চালিয়ে আমার সমস্যাটি সংশোধন করেছি এবং এর ফলে সংযোগটি শেষ পর্যন্ত হয়ে যায় যদিও সংযোগটি কাজ করার আগে কখনও কখনও পুনরাবৃত্তিটি 100+ বার লুপ করতে পারে তবে এটি কেবলমাত্র রান চালিয়ে দ্বিতীয় মুহূর্তটি যোগ করে adds বার এবং আমি বাজি ধরছি যে সময়টি আমার জন্য এনএসএলোগুলি প্রিন্ট করতে ডিবাগারটি লাগে।

আমি কীভাবে এএফ নেটর্কেটিং দিয়ে একটি পুনরাবৃত্ত ব্লক চালাচ্ছি তা এখানে: আপনার সংযোগ শ্রেণীর ফাইলটিতে এই কোডটি যুক্ত করুন

// From Mike Ash's recursive block fixed-point-combinator strategy https://gist.github.com/1254684
dispatch_block_t recursiveBlockVehicle(void (^block)(dispatch_block_t recurse))
{
    // assuming ARC, so no explicit copy
    return ^{ block(recursiveBlockVehicle(block)); };
}
typedef void (^OneParameterBlock)(id parameter);
OneParameterBlock recursiveOneParameterBlockVehicle(void (^block)(OneParameterBlock recurse, id parameter))
{
    return ^(id parameter){ block(recursiveOneParameterBlockVehicle(block), parameter); };
}

তারপরে এটি পছন্দ করে নিন:

+ (void)runOperationWithURLPath:(NSString *)urlPath
            andStringDataToSend:(NSString *)stringData
                    withTimeOut:(NSString *)timeOut
     completionBlockWithSuccess:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
                        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
    OneParameterBlock run = recursiveOneParameterBlockVehicle(^(OneParameterBlock recurse, id parameter) {
        // Put the request operation here that you want to keep trying
        NSNumber *offset = parameter;
        NSLog(@"--------------- Attempt number: %@ ---------------", offset);

        MyAFHTTPRequestOperation *operation =
            [[MyAFHTTPRequestOperation alloc] initWithURLPath:urlPath
            andStringDataToSend:stringData
            withTimeOut:timeOut];

        [operation setCompletionBlockWithSuccess:
            ^(AFHTTPRequestOperation *operation, id responseObject) {
                success(operation, responseObject);
            }
            failure:^(AFHTTPRequestOperation *operation2, NSError *error) {
                if (error.code == -1005) {
                    if (offset.intValue >= numberOfRetryAttempts) {
                        // Tried too many times, so fail
                        NSLog(@"Error during connection: %@",error.description);
                        failure(operation2, error);
                    } else {
                        // Failed because of an iOS bug using timed out connections, so try again
                        recurse(@(offset.intValue+1));
                    }
                } else {
                    NSLog(@"Error during connection: %@",error.description);
                    failure(operation2, error);
                }
            }];
        [[NSOperationQueue mainQueue] addOperation:operation];
    });
    run(@0);
}

আপনি দেখতে পাবেন যে আমি একটি AFHTTPRequestOperationসাবক্লাস ব্যবহার করি তবে আপনার নিজের অনুরোধ কোডটি যুক্ত করুন। গুরুত্বপূর্ণ অংশটি আবার কল recurse(@offset.intValue+1));করার জন্য কল করছে।


মাইএফএইচটিটিপিআরকোয়েস্টঅপেশন ক্লাসটি কী?
jdog

এটি কেবল একটি AFHTTPRequestOperation সাবক্লাস। সময়সীমা এবং প্রমাণীকরণের মতো কিছু জিনিস পূর্বনির্ধারিত করতে আমি এটি ব্যবহার করি।
ড্যারেন

2

যদি কোনও ডিভাইসে সমস্যা দেখা দেয় তবে ট্রাফিক কোনও প্রক্সি (সেটিংস> ওয়াই-ফাই> (তথ্য)> HTTP প্রক্সি) দিয়ে যাচ্ছে কিনা তা পরীক্ষা করুন। চার্লসের সাথে ব্যবহার করার জন্য আমার কাছে আমার ডিভাইস সেটআপ ছিল, তবে প্রক্সিটি ভুলে গিয়েছিল। দেখে মনে হচ্ছে চার্লস ছাড়া আসলে এই ত্রুটি ঘটে।


2

যদি কোনও ব্যাকএন্ড সার্ভারে ফাইলগুলি আপলোড করার সময় কেউ এই ত্রুটিটি পেয়ে থাকেন তবে নিশ্চিত হয়ে নিন যে প্রাপ্তি হওয়া সার্ভারটির সর্বাধিক সামগ্রীর আকার রয়েছে যা আপনার মিডিয়াতে অনুমোদিত। আমার ক্ষেত্রে, nginx একটি উচ্চ প্রয়োজনীয় client_max_body_size। এনজিআইএনএক্স আপলোডিং শেষ হওয়ার আগে অনুরোধটি প্রত্যাখ্যান করবে যাতে কোনও ত্রুটি কোড ফিরে না আসবে।


2

আমি যখন এক্সকোড 6.2 বিটা ব্যবহার করছিলাম তখন আমি একটি আইওএস 7 ডিভাইসে ত্রুটি পেয়েছিলাম।

এক্সকোড .2.২ বিটা থেকে back.১.১ এ ফিরে স্যুইচ করা কমপক্ষে কোনও আইওএস 7 ডিভাইসে সমস্যাটি স্থির করেছে।


আমি সমাধান করার মতো কিছু আছে বলে মনে করি না: অন্তর্নিহিত ওএস কোনও কারণে বৈধ বা না হওয়ার কারণে সংযোগ ড্রপ করে। এটি মোকাবেলায় একটি অ্যাপ্লিকেশন প্রস্তুত করা উচিত (অফলাইনে বা যাই হোক না কেন কাজ করুন)। আপনার নির্দিষ্ট এক্সকোড সংস্করণে এসডিকে ধরে নেওয়া অবশ্যই বগি নয়: আমার উত্তর হিসাবে দেখা যায় যে 6.2 সম্ভবত বগী ছিল এবং 6.1.1 ভাল ছিল। এক্সকোড .4.৪ যথাযথভাবে স্থিতিশীল বলে মনে হয় এবং .0.০.১ একটি আলফা গ্রেড সফ্টওয়্যার হ'ল অনুরূপ কিছু এখন লক্ষ্য করা যায়। বা তাই মনে হয়।
আন্তন ট্রপ্যাশকো

2

উপর 2017-01-25অ্যাপল এই ত্রুটি সংক্রান্ত একটি প্রযুক্তিগত Q & A- মুক্ত করা হয়েছে:

অ্যাপল প্রযুক্তিগত প্রশ্নোত্তর QA1941 19

"নেটওয়ার্ক সংযোগটি হারিয়েছিল" ত্রুটিগুলি পরিচালনা করে

উত্তর: NSURLErrorNetworkConnicationLost ত্রুটি -1005 NSURLErrorDomain ত্রুটি ডোমেন, এবং ব্যবহারকারীদের "নেটওয়ার্ক সংযোগ হারিয়েছিল" হিসাবে প্রদর্শিত হয়। এই ত্রুটির অর্থ হ'ল এইচটিটিপি অনুরোধটি চলমান অবস্থায় অন্তর্নিহিত টিসিপি সংযোগটি সংযোগ বিচ্ছিন্ন হয়ে গেছে (এই সম্পর্কিত আরও তথ্যের জন্য নীচে দেখুন)। কিছু পরিস্থিতিতে এনএসআরএলসেশন এই জাতীয় অনুরোধগুলি স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করতে পারে (বিশেষত, যদি অনুরোধটি আদর্শবান হয়) তবে অন্য পরিস্থিতিতে HTTP মান দ্বারা অনুমোদিত নয়।

https://developer.apple.com/library/archive/qa/qa1941/_index.html#//apple_ref/doc/uid/DTS40017602


1

কয়েক মাস ধরে সমস্যাটি পেয়েছেন এবং শেষ পর্যন্ত আবিষ্কার করেছেন যে আমরা যখন আমাদের এপিআই ডোমেনে DNSSEC অক্ষম করি তখন সবকিছু ঠিক ছিল: সরল_স্মাইল:


2
আপনি দয়া করে বিস্তারিত বলতে পারেন?
গ্রুট

1

আমি একটি ভিপিএন এর মাধ্যমে সংযুক্ত ছিলাম। ভিপিএন অক্ষম করা সমস্যার সমাধান করেছে।


1

অনুরোধের HTTPMethod সেট না করে কোনও এনএসআরএল অনুরোধটি কোনও এনএসআরএল সেশনে পাস করার সময় আমি এই ত্রুটিটি আঘাত করছিলাম

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:urlComponents.URL];

ত্রুটি ডোমেন = NSURLErrorDomain কোড = -1005 "নেটওয়ার্ক সংযোগটি হারিয়ে গেছে।"

যোগ করুন HTTPMethodযদিও, এবং সংযোগটি ভাল কাজ করে

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:urlComponents.URL];
[request setHTTPMethod:@"PUT"];

1

আপনি অন্যান্য অ্যাপ্লিকেশন (যেমন সাফারি) থেকে অনুরোধ করতে পারেন তা পরীক্ষা করুন। না হলে আপনার কম্পিউটারে কিছু হতে পারে। আমার ক্ষেত্রে অ্যাভাস্ট অ্যান্টিভাইরাস নিয়ে আমার এই সমস্যা হয়েছিল, যা আমার সিমুলেটরদের অনুরোধটি আটকাচ্ছে (কেন আমাকে জিজ্ঞাসা করবেন না)।


1

কম্পিউটারটি পুনরায় চালু করা Xcode9.1 দিয়ে আমার জন্য সমস্যাটি স্থির করে। আমি সিমুলেটর এবং এক্সকোড পুনরায় চালু করেছি, এটি কাজ করে না।


1

আমি একই সমস্যার মুখোমুখি হয়েছি, আমি অ্যাপ্লিকেশনটির জন্য ধীর নেটওয়ার্ক পরীক্ষার জন্য নেটওয়ার্ক লিঙ্ক কন্ডিশনার সক্ষম করেছি have এটি কিছু সময় এই ত্রুটিটি তৈরি করছিল, যখন আমি এটিকে অক্ষম করে Settings > Developer > Network Link Conditionerদিয়েছি তখন এটি আমার সমস্যার সমাধান করে।

এখানে চিত্র বর্ণনা লিখুন

আশা করি এটি কারও সাহায্য করবে।


1

আমার ক্ষেত্রে এটি হ'ল কারণ আমি HTTP- র সাথে সংযুক্ত ছিল এবং এটি HTTPS- এ চলছে


0

আমি নিম্নলিখিত কারণে এই সমস্যা ছিল।

টিএলডিআর: আপনি যদি GETঅনুরোধটি প্রেরণ করছেন যা url- এর পরিবর্তে url এ পরামিতিগুলি প্রেরণ করা উচিত CheckNSURLRequest's HTTBody সম্পত্তিটির ।

==================================================

আমি আমার অ্যাপ্লিকেশনটিতে একটি নেটওয়ার্ক বিমূর্তি স্থাপন করেছি এবং এটি আমার সমস্ত অনুরোধের জন্য বেশ ভালভাবে কাজ করছে।

আমি অন্য ওয়েব সার্ভিসে একটি নতুন অনুরোধ যুক্ত করেছি (আমার নিজস্ব নয়) এবং এটি আমাকে এই ত্রুটি ছুঁড়ে দেওয়া শুরু করে।

আমি একটি খেলার মাঠে গিয়ে গ্রাউন্ড আপ থেকে একটি নগ্ন হাড়ের অনুরোধ তৈরি করতে শুরু করি এবং এটি কার্যকর হয়েছিল। আমি কারণ খুঁজে না পাওয়া পর্যন্ত আমি আমার বিমূর্তির আরও কাছে যেতে শুরু করেছি।

আমার বিমূর্তকরণ বাস্তবায়নে একটি ত্রুটি ছিল: আমি একটি অনুরোধ পাঠাচ্ছিলাম যা ইউআরএলটিতে এনকোডযুক্ত প্যারামিটারগুলি প্রেরণ করার কথা ছিল এবং আমি NSURLRequest's HTTBodyকোয়েরি পরামিতিগুলির সাথে সম্পত্তিও পূরণ করছিলাম । যত তাড়াতাড়ি আমি HTTPBodyএটি কাজ সরিয়েছি ।


0

আমি এই ত্রুটিটি পেয়েছি এবং বিজ্ঞপ্তিও পেয়েছি যে অ্যাপ্লিকেশন পোস্টম্যানটিও হ্রাস পাচ্ছে তবে অ্যাপ্লিকেশন অ্যাডভান্সড রেস্ট রেস্ট ক্লায়েন্ট (এআরসি) এবং অ্যান্ড্রয়েডে কাজ করছে। সুতরাং যোগাযোগটি ডিবাগ করার জন্য আমাকে চার্লস ইনস্টল করতে হয়েছিল এবং আমি লক্ষ্য করেছি যে প্রতিক্রিয়া কোড -1 ছিল। সমস্যাটি হ'ল REST প্রোগ্রামার প্রতিক্রিয়া কোড 200 ফিরিয়ে দিতে ভুলে গিয়েছিল।

আমি আশা করি এটি অন্যান্য বিকাশকারীদের সহায়তা করবে।


0

যখনই ত্রুটি পেয়েছে -1005 তখন আবার এপিআই কল করতে হবে।

AFHTTPRequestOperationManager *manager = 
[AFHTTPRequestOperationManager manager];
[manager setSecurityPolicy:policy];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

[manager POST:<example-url>
   parameters:<parameteres>
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
      NSLog(@“Success: %@", responseObject);
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
      NSLog(@"Error: %@", error);
      if (error.code == -1005) {
          // Call method again... 
       }
  }];

ফাংশনটি আবার কল করতে আপনাকে আপনার কোড যুক্ত করতে হবে। MakeSure যে আপনি একবার কল পদ্ধতি ছিলেন তা অন্যথায় এর কল পুনরাবৃত্ত লুপ।


0

সমস্ত উত্তরের উপরে আমি একটি দুর্দান্ত সমাধান পেয়েছি। আসলে আইওএস 12 অনওয়ার্ডের জন্য নেটওয়ার্ক সংযোগ সম্পর্কিত সমস্যাটি ব্যর্থ হয়েছে কারণ আইওএস 12.0 অনওয়ার্ডে একটি বাগ রয়েছে। এবং এটি সমাধান এখনও। অ্যাপটি ব্যাকগ্রাউন্ড থেকে এসেছে এবং নেটওয়ার্ক কল করার চেষ্টা করে এবং সংযোগ স্থাপনে ব্যর্থ হয় যখন আমি এএফ নেটওয়ার্কিং সম্পর্কিত ইস্যুটির জন্য গিট হাব সম্প্রদায়ের মধ্য দিয়ে গিয়েছিলাম। আমি এটিতে 3 দিন ব্যয় করেছি এবং এর মূল কারণটিতে পৌঁছানোর জন্য অনেক কিছুই চেষ্টা করেছি এবং কিছুই পাই নি। এই ব্লগটি যখন লাল করলাম তখন অবশেষে আমি অন্ধকারে কিছুটা আলো পেলাম https://github.com / এফ নেট নেটওয়ার্কিং / এএফ নেট নেটওয়ার্কিং / issues/ 4279

এটি বলছে যে আইওএস 12-এ একটি ত্রুটি রয়েছে 12 মূলত আপনি যদি অ্যাপ্লিকেশনটি ওগ্রাউন্ডে না থাকেন তবে কোনও নেটওয়ার্ক কল কখনই শেষ হবে আশা করতে পারবেন না। এবং এই বাগের কারণে নেটওয়ার্ক কলগুলি ঝরে যায় এবং আমরা লগগুলিতে নেটওয়ার্ক ব্যর্থ হয়ে যাই।

আপনার কাছে আমার সেরা পরামর্শটি হ'ল আপনার অ্যাপ্লিকেশনটি পটভূমি থেকে সম্মুখভূমিতে আসার সময় কিছুটা বিলম্ব হয় এবং সেখানে নেটওয়ার্ক কল থাকে। কিছু বিলম্বের সাথে প্রেরণ অ্যাসিঙ্কে সেই নেটওয়ার্ক কল করুন। আপনি কখনই নেটওয়ার্ক কল ড্রপ বা সংযোগ হারাবেন না।

অ্যাপলটি এই সমস্যাটি এখনও iOS 12 এর সমাধানের জন্য অপেক্ষা করবেন না কারণ এটি এখনও ঠিক হয়নি। আপনার নেটওয়ার্কের অনুরোধটি এর এনএসআরএল সংযোগ, এনএসআরএলসেশন বা এএফ নেটওয়ার্কিং বা আলামোফায়ার হওয়ার জন্য কিছুটা বিলম্বের মাধ্যমে আপনি এই কাজের সাথে যেতে পারেন। চিয়ার্স :)


0

শারীরিক ডিভাইস সহ আইওএস 12 অ্যাপ থেকে আমার সংস্থার সার্ভারটি কল করার সময় আমি একই সমস্যার মুখোমুখি হয়েছিলাম। সমস্যাটি হ'ল সার্ভারের হার্ড ডিস্কটি পূর্ণ ছিল। সার্ভারে স্থান খালি করা সমস্যার সমাধান করেছে।

আমি অন্য পরিস্থিতিতে একই ত্রুটিটি পেয়েছি বলে মনে করি অ্যাপল ( URLSession.timeoutIntervalForRequestএবং URLSession.timeoutIntervalForResource) সরবরাহিত স্ট্যান্ডার্ড নেটওয়ার্কিং এপিআইয়ের মাধ্যমে একটি সময়সীমা প্যারামিট্রাইজেবল না হওয়ার কারণে think এমনকি সেখানে .. সার্ভারের উত্তর দ্রুত সমস্যার সমাধান করেছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.