2016-04-02 27 views
2

aşağıdaki web sitesinde bir form için Ruby veya Python ya yoluyla bir POST isteği yapmaya çalışıyorum: 'Veri Yok' http://diamond-cut.com.au/holloway_cut_adviser.htmPOST İsteği 'Veri Yok'

istek döndürüyor Benim istek başlıklarına bir şey atlayarak düşünüyorum

Ruby 'Hayır Verileri' dönüyor

Minimal kodu (örn kullanıcı aracısı, kabul sonucunu değişmedi bu parametrelerin dahil.):

require 'restclient' 
url='http://www.pricescope.com/hca.php' 
params = {"depth_textbox" => '60', 
      "table_textbox" => '57', 
      "crown_listbox" => "0", 
      "crown_textbox" => '34', 
      "pavilion_listbox" => "0", 
      "pavilion_textbox" => '40.5', 
      "cutlet_textbox" => "0"} 

page=RestClient.post(url,params) 
Python

:

import requests 
url='http://www.pricescope.com/hca.php' 
params = {"depth_textbox" : '60', 
      "table_textbox" : '57', 
      "crown_listbox" : "0", 
      "crown_textbox" : '34', 
      "pavilion_listbox" : "0", 
      "pavilion_textbox" : '40.5', 
      "cutlet_textbox" : "0"} 
r=requests.post(url,params) 

cevap

2

biraz başlıklarıyla ile oynamak gerekir:

headers = {'Referer': 'http://www.pricescope.com/hca.php'} 

r = requests.post(url, data=params, headers=headers) 
print r.content 
+0

Teşekkürler! İşe yaradı. Tamlık için, Ruby'de eşdeğer düzeltme: 'sayfa = RestClient.post (url, data = params, başlıklar = {'Referer' => url})' Referer başlığının niçin gerekli olduğuna dair sezgisel bir açıklama var mı? Ayrıca, hata ayıklama bunu nasıl ortaya çıkardı? –

+0

@GolanTrevize, site sahiplerinden gelen kısıtlamalardır. –

-1

Python kodunuzda, aşağıdaki gibi olmalıdır.

r = requests.post (url, veri = parametrelerini)

Bu links ayrıca POST sözdizimi anlamaya yardımcı olabilir.