เรียก API ไม่ได้ ไม่มีการตอบสนองใดๆกลับมา

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 31795
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

เรียก API ไม่ได้ ไม่มีการตอบสนองใดๆกลับมา

โพสต์ที่ยังไม่ได้อ่าน โดย MBMoo »

เรียก API ไม่ได้ ไม่มีการตอบสนองใดๆกลับมา ก่อนหน้านี้ใช้งานได้ปกติๆ อยู่ๆ เปิดเครื่องมาก็ใช้งานไม่ได้แล้ว

โค้ด: เลือกทั้งหมด


import requests

url = 'http://***.xx.***.***/api/data'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer %s' % token
}

try:
    print(url)
    response = requests.get(url, headers=headers)
    print(response.status_code)
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"Error: {e}")


ที่ print ออกมามีแต่ url และการทำงานก็ค้างไปเลย ไม่มีแจ้งเตือนไม่มีการหยุดใดๆ ทั้งสิ้น

แก้ยังไง
MindPHP Assistant

Re: เรียก API ไม่ได้ ไม่มีการตอบสนองใดๆกลับมา

โพสต์ที่ยังไม่ได้อ่าน โดย MindPHP Assistant »

จากปัญหาที่คุณอธิบายมา ดูเหมือนว่าโปรแกรมของคุณค้างอยู่ในขั้นตอน `requests.get` ซึ่งหมายความว่าอาจมีบางอย่างผิดปกติกับการเชื่อมต่อไปยัง URL ที่ระบุไว้

ปัญหานี้อาจเกิดจากหลายสาเหตุ เช่น:

1. การเชื่อมต่ออินเตอร์เน็ตมีปัญหา
2. เซิร์ฟเวอร์ที่คุณพยายามเชื่อมต่อไม่ตอบสนองหรือหยุดทำงาน
3. URL ที่ระบุไว้ไม่ถูกต้องหรือไม่สามารถเข้าถึงได้
4. ปัญหาการตั้งค่า network เช่น firewall หรือ proxy
5. ปัญหาด้าน DNS หรือ routing

วิธีการตรวจสอบและแก้ไข:

1. **ตรวจสอบการเชื่อมต่ออินเตอร์เน็ต**: ตรวจสอบว่าคุณสามารถเข้าถึงอินเตอร์เน็ตได้โดยการเปิดเว็บไซต์อื่นๆ
2. **ตรวจสอบ URL**: ลองเปิด URL นี้ในเว็บเบราว์เซอร์เพื่อดูว่ามีการตอบสนองหรือไม่
3. **Timeout setting**: เพิ่ม timeout ให้กับ `requests.get` เป็นการป้องกันไม่ให้โปรแกรมค้างนานเกินไป เช่น

โค้ด: เลือกทั้งหมด

python
    response = requests.get(url, headers=headers, timeout=10)
    
4. **ตรวจสอบเซิร์ฟเวอร์**: ตรวจสอบว่าเซิร์ฟเวอร์ที่คุณพยายามเชื่อมต่อทำงานได้ปกติ อาจต้องติดต่อผู้ดูแลระบบ
5. **ตรวจสอบ firewall/proxy**: ตรวจสอบว่าการตั้งค่า firewall หรือ proxy ไม่ได้บล็อกการเชื่อมต่อ
6. **ตรวจสอบการแก้ปัญหา DNS หรือ routing**: ลองใช้คำสั่ง `ping` หรือ `traceroute` เพื่อดูว่าเส้นทางการเชื่อมต่อไปยังเซิร์ฟเวอร์นั้นถูกต้องหรือไม่

หากปัญหายังคงอยู่ หลังจากที่ตรวจสอบสิ่งเหล่านี้แล้ว อาจต้องดูแลโดยผู้มีความเชี่ยวชาญในด้านระบบเครือข่ายหรือ server ที่เกี่ยวข้อง
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 31795
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: เรียก API ไม่ได้ ไม่มีการตอบสนองใดๆกลับมา

โพสต์ที่ยังไม่ได้อ่าน โดย MBMoo »

ทดสอบบน postman ใช้งานได้ปกติ น่าจะเป็นที่เครื่อง
ภาพประจำตัวสมาชิก
MBMoo
PHP VIP Members
PHP VIP Members
โพสต์: 31795
ลงทะเบียนเมื่อ: 04/06/2020 10:05 am

Re: เรียก API ไม่ได้ ไม่มีการตอบสนองใดๆกลับมา

โพสต์ที่ยังไม่ได้อ่าน โดย MBMoo »

ทดสอบเรียก Public API สามารถใช้งานได้ปกติ

โค้ด: เลือกทั้งหมด

url = "https://dog.ceo/api/breeds/image/random"
response = requests.get(url, timeout=5)
print(response.json())

{'message': 'https://images.dog.ceo/breeds/terrier-russell/jack-koda-1.jpg', 'status': 'success'}

ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 6