2015-12-21 16 views
5

API'leri çağırmak için python istek modülünü kullanıyorum. Kodumu AWS'ye itene kadar her şey yolunda gidiyordu. AWS üzerinde bile ben dev sunucusu yani, ec2.####.amazon.com:8000 üzerinde çalışıyorsam çalışıyor. İşte Python İstekleri POST çalışmıyor

benim kodudur:

r = requests.post(api_url, data = {"var 1":"value", "var 2":"value"}) 

Benim API url izin verilmez GET yöntem ben requests.post neyin var get

Herhangi fikir olarak okur demektir GET yöntemine izin değil hatası alıyorum yanıtı o kadar İşte.

+0

için geri kalan her şeye erişmeyi denediniz mi? 8000 portu olmayan proje (django'nun üretim env modu), ayrıca request.method kontrolünü yorumlamayı deneyebilir ve API'nizin isteğinin çalışıp çalışmadığını veya hiç çalışmıyor mu olduğunu görebilirsiniz. –

+0

@JatinBansal evet 8000 olmadan çalışıyor ve sadece yayın hata veriyor iyi çalışıyor – user5594493

+0

POST isteklerinizi test etmek için REST istemcilerinden herhangi birini deneyebilir misiniz, Google Chrome için Gelişmiş istirahat istemcisi gibi kullanılabilir. Ayrıca, hata oluştuğunda aldığınız django hata ayıklama bilgisinin bir kısmını da gönderin (Hata ayıklamayı True olarak ayarlayın). Localhost üzerinde –

cevap

3

Aslında sorunun sunucu https yöntemi kullanıyorsa, SSL, o zaman Ayrıca api_url https bende olmayan http

içerdiğinden emin olun requests.post

r = requests.post(api_url, data = {"var 1":"value", "var 2":"value"}, verify=True) 

satır aşağıdaki eklemeniz gerekir kaynaklandığını

def get_base_url(request): 
    host = get_host(request) 
    if request.is_secure(): 
     return '{0}{1}/{2}'.format('https://', host, 'url') 
    else: 
     return '{0}{1}/{2}'.format('http://', host, 'url')