2016-04-02 25 views
2

私は、以下のウェブサイト上のフォームのためのRubyやPythonのいずれかを介してPOSTリクエストを作成しようとしている:「データなし」 http://diamond-cut.com.au/holloway_cut_adviser.htmPOST要求「データがありません」

要求リターン私は私のリクエストヘッダから何かを省略していると思う

Rubyで「データなし」を返していない

最小限のコード(例えば、ユーザーエージェントは、受け入れる結果を変更していないこれらのパラメータを含む。):

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) 

答えて

2

あなたは、ヘッダーと少しを再生する必要があります。

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

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

ありがとうございます!出来た。 'page = RestClient.post(url、data = params、headers = {'Referer' => url})' Refererヘッダーが必要な理由を直感的に説明できますか?また、どのようにデバッグがこれを明らかにするでしょうか? –

+0

@GolanTrevizeそれはサイトの所有者からの制限です。 –

-1

あなたのPythonコードでは、次のようにする必要があります。

R = requests.post(URL、データ= paramsは)

これlinksはまた、POSTの構文を理解するのに役立つ可能性があり。

関連する問題