我有一个脚本,在联邦快递每周给我寄发票、挖掘信息并将其发布到xpenser.com时都会用到在最近的联邦快递计费网站重新设计之后,当我运行以下代码时:

  agent = Mechanize.new
  page = agent.get 'http://fedex.com/us/fcl/pckgenvlp/online-billing/'
  form = page.form_with(:name => 'logonForm')
  form.username = FEDEX['username']
  form.password = FEDEX['password']
  page = agent.submit form
  pp page

我收到此错误:
Mechanize::ResponseCodeError: 405 => Net::HTTPMethodNotAllowed

我看到有一个javascript auth函数似乎构建了一个设置隐藏变量的URL我尝试过将变量字符串的各种组合传入,但没有成功。
虽然Mechanize不支持javascript,但它将传入变量字符串,如果您找到了正确的字符串,则可以通过这种方式进行身份验证我希望能在这里做到。

最佳答案

使用mechanize-1.0.0,可以执行以下操作:

  agent = Mechanize.new
  page = agent.get 'http://fedex.com/us/fcl/pckgenvlp/online-billing/'
  form = page.form_with(:name => 'logonForm')
  form.username = FEDEX['username']
  form.password = FEDEX['password']
  form.add_field!('field_name', 'Page$2')
  page = agent.submit form
  pp page

试试这个。可能对你有帮助

关于ruby - Ruby Mechanize 405 Net::HTTPMethodNotAllowed报废联邦 express 账单时出现错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5891950/

10-15 10:43