java.net.ConnectException: localhost / 127.0.0.1: 8080 - कनेक्शन ने इनकार कर दिया


97

मैं अपने मशीन से संसाधनों की सेवा के लिए xampp अपाचे सर्वर का उपयोग कर रहा हूं। लेकिन मुझे उपरोक्त त्रुटि मिल रही है।

मुझे गूगल पर कुछ मिला। यहाँ संभव समाधान की ओर इशारा करते हुए http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

उपरोक्त समस्या का हल क्या है?


1
अपने लोकलहोस्ट (127.0.0.1) पर 10.0.2.2 लूपबैक का उपयोग करें। आप इसके बारे में और अधिक यहाँ पढ़ सकते हैं Android एमुलेटर नेटवर्किंग
डेमित्रो मेल्निचुक

जवाबों:


292

चूंकि आपने निर्दिष्ट नहीं किया है कि आप डिवाइस या एमुलेटर से सर्वर से जुड़े हैं, इसलिए मुझे लगता है कि आप एमुलेटर में अपने एप्लिकेशन का उपयोग कर रहे हैं।

अगर आप एंड्रॉइड एमुलेटर से अपने सिस्टम पर अपने लोकलहोस्ट का जिक्र कर रहे हैं तो आपको इसका उपयोग करना होगा http://10.0.2.2:8080/क्योंकि एंड्रॉइड एमुलेटर एक वर्चुअल मशीन में चलता है इसलिए 127.0.0.1याlocalhost एमुलेटर का अपना लूपबैक पता होगा।

संदर्भ: एमुलेटर नेटवर्किंग


हां, बिल्कुल मैं वही काम कर रहा हूं। क्या आप विस्तार से बता सकते हैं। जहाँ IP एड्रेस को 10.0.2.2 में बदलना है। यह वह फ़ोल्डर है जिसे मैं xampp सर्वर लोकलहोस्ट
pradeep

1
मुझे मिल गया है, हम पथ की तरह आवेदन में दिए गए चने के लिए है http: // localhost: 8080 / लिंक / to / resource.xml को http://10.0.2.2:8080/link/to/resource.xml
प्रदीप

@VikasPatidar क्या आप मुझे बता सकते हैं कि इस पते को 10.0.2.2 में बदलने के लिए मेरे कोड में एक नौसिखिया के रूप में कहाँ है
AndroidOptimist

1
उदाहरण के लिए यदि आपका URL पसंद है http://localhost:8080/Getdata.phpया http://127.0.0.1:8080/Getdata.phpफिर आपको इसे उपयोग के रूप में बदलना हैhttp://10.0.2.2:8080/Getdata.php
विकास पाटीदार

1
बदलें 10.0.2.2के साथ 10.0.3.2अगर आप Genymotion पर चल रहे हैं।
याकूब आर


19

लोकलहोस्ट और 127.0.0.1 दोनों 'वर्तमान मशीन' कहने के तरीके हैं। तो आपके पीसी पर लोकलहोस्ट पीसी है और एंड्रॉइड पर लोकलहोस्ट फोन है। चूंकि आपका फ़ोन वेबसर्वर नहीं चल रहा है, इसलिए वह कनेक्शन को मना कर देगा।

आपको अपनी मशीन का IP पता प्राप्त करने की आवश्यकता है (पता लगाने के लिए विंडोज़ पर ipconfig का उपयोग करें) और 127.0.0.1 के बजाय इसका उपयोग करें। यह अभी भी आपके नेटवर्क / फ़ायरवॉल की स्थापना के आधार पर काम नहीं कर सकता है। लेकिन यह एक पूरी तरह से अलग विषय है।


क्या आप इसे और अधिक विस्तार से समझा सकते हैं, मेरी मशीनों का आईपी पता बताने की आवश्यकता है
प्रदीप

2
यदि आप ipconfig टाइप करते हैं तो यह आपको आपकी मशीन का IP पता बताएगा। यह आपके नेटवर्क के लिए एक निजी आईपी पते की सबसे अधिक संभावना है, इसलिए यह केवल उन उपकरणों से सुलभ होगा जो उसी नेटवर्क पर हैं इसलिए WIFI शायद काम करेगा, 3G शायद अभ्यस्त नहीं होगा।
स्कॉरुलिस

@skorulis हाँ हमें अपनी मशीन का url सेट करना होगा जो 127.0.0.1 से अलग है क्योंकि हम अपने ऐप कोड में नेटवर्क से जुड़े हैं।
रवि यादव

आप अपने कंप्यूटर के लिए एक विशिष्ट आईपी भी सेट कर सकते हैं जिस पर सर्वर चल रहा है। इस IP का उपयोग अपने Android App में करें। यह बेहतर है क्योंकि मामले में जब आप अपने राउटर या कंप्यूटर को पुनरारंभ करते हैं, तो आपको कंप्यूटर के लिए अक्सर एक नया आईपी मिलेगा और आप इसे अपने कोड में बदलने के लिए तैयार होंगे।
DOUBL3P

12
  1. Androidmanifest.xml फ़ाइल में इंटरनेट अनुमति जोड़ें

उपयोग-अनुमति Android: नाम = "android.permission.INTERNET

  1. खिड़कियों में cmd ​​खोलें
  2. "ipconfig" टाइप करें और फिर एंटर दबाएं
  3. IPv4 पता खोजें। । । । । । । । । । । : 192.168.XX
  4. इस URL का उपयोग करें " http: //192.168.XX: your_virtual_server_port / your_service.php "

धन्यवाद, यह NOX एमुलेटर और Xammp के लिए काम करता है।
मिस्साम मेहमनवज

9

आपको बस अपने स्थानीय (लेकिन वास्तविक) आईपी पते और पोर्ट नंबर का उपयोग करना होगा:

String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"

और सुनिश्चित करें कि आपने इंटरनेट अनुमति को प्रकट के भीतर सेट किया है

<uses-permission android:name="android.permission.INTERNET" />


5

यदि आप अपने url में लोकलहोस्ट का उपयोग कर रहे हैं और एमुलेटर में अपने एप्लिकेशन का परीक्षण कर रहे हैं, तो आप URL में लोकलहोस्ट के लिए सिस्टम के आईपी एड्रेस को बदल सकते हैं। इसके लिए आप लोकलहोस्ट के बजाय 10.0.2.2 का उपयोग कर सकते हैं।

http: //localhost/webservice.php को http://10.218.28.19/webservice.php

जहां 10.218.28.19 -> सिस्टम का आईपी पता।

या

http: //localhost/webservice.php को http://10.0.2.2/webservice.php


4

आपको अपने स्थानीय आईपी पते का उपयोग करना होगा: इस तरह से cmd कमांड "ipconfig" और अपने सर्वर पोर्ट नंबर का उपयोग करना होगा:

स्ट्रिंग WebServiceUrl = " http: //192.168.XX: your_local_server_port / your_web_service_name.php "

और सुनिश्चित करें कि आपने अपने प्रोजेक्ट मेनिफ़ेस्ट में इंटरनेट की अनुमति निर्धारित की थी

यह मेरे लिए पूरी तरह से काम कर रहा है

शुभ लाभ


3

मेरे लिए यह काम कर रहा है। मैं Run App के लिए genymotion का उपयोग करता हूं।

1. सबसे पहले मैं अपने स्थानीय आईपी की जाँच की थी। गोटो कमांड मोड >> और ipconfig लिखें। उदाहरण: विंडोज 10 >> खोज cmd >> फिर ipconfig लिखें। 2. फिर अपनी स्थानीय आईपी जानकारी प्राप्त करें >>> 3. अपने स्थानीय होस्ट आईपी और वर्चुअल बॉक्स आईपी दें। आपको genymotion.Check स्क्रीनशॉट के लिए वर्चुअल बॉक्स आईपी का उपयोग करने की आवश्यकता है। आप वर्चुअलबॉक्स होस्ट नेटवर्क के तहत किसी भी आईपी से नीचे कर सकते हैं यहां छवि विवरण दर्ज करें


2

10.0.2.2 के साथ लोकलहोस्ट को बदलना सही है, लेकिन आप अपने भौतिक मशीन के आईपी के साथ लोकलहोस्ट को बदल सकते हैं (यह डिबग उद्देश्यों के लिए बेहतर है)। Ofc, अगर ip dhcp द्वारा प्रदान किया जाता है, तो आपको इसे हर बार बदलना होगा ...

सौभाग्य!


0

समाधान बहुत सरल है।

1 Androidmanifest.xml फ़ाइल में इंटरनेट अनुमति जोड़ें

<uses-permission android:name="android.permission.INTERNET" />

[२] अपनी httpd.config फ़ाइल बदलें

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

TO

Order Deny,Allow
Allow from all
Allow from 127.0.0.1

And restart your server.

[३] और सबसे नपुंसक कदम। अपने नेटवर्क के रूप में अपने नेटवर्क बनाएँ

कंट्रोल पैनल> नेटवर्क और इंटरनेट> नेटवर्क और शेयरिंग सेंटर पर जाएं

Click on your Network and select HOME NETWORK

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.