2
My code is this


 require 'mechanize'
  obj=Mechanize.new
  a.get("http://cafedepoca.com/submit_data?name=test&email=test@mail.com&pass=mypassword&prof_type=30&api_key=mykey") do |d|
  d.user='testuser'
  d.password='mypassword'
  end.click_button

它返回并返回一个错误。Net::HTTPUnauthorized。如果有任何其他方式可以在弹出框中填写凭据。如果存在任何其他 gem,请建议我。

4

2 回答 2

2

我检查了http://cafedepoca.com并提示使用 BasicAuthentication。您必须先输入它。

 require 'mechanize'
 a=Mechanize.new
 a.auth('username','password') # fix this line with correct login and password for BasicAuth  
 a.get("http://cafedepoca.com/submit_data?name=test&email=test@mail.com&pass=mypassword&prof_type=30&api_key=mykey").click_button

它应该以这种方式工作。

于 2013-06-03T06:24:31.087 回答
2

您需要使用Mechanize#authMechanize#add_auth来通过基本身份验证。

require 'mechanize'

USERNAME = "XXXXXXXX"
PASSWORD = "YYYYYYYY"

agent = Mechanize.new
agent.auth(USERNAME, PASSWORD)
agent.get("http://cafedepoca.com/submit_data?name=test&email=test@mail.com&pass=mypassword&prof_type=30&api_key=mykey")
于 2013-06-03T06:24:59.377 回答