안녕 얘들 아 나는 일부 데이터를 Google에 게시하고 응답을 얻는 python 스크립트를 가지고있다. 스크립트는 아래와 같습니다파이썬에서 루비로 변환
net, cid, lac = 24005, 40242, 62211
import urllib
a = '000E00000000000000000000000000001B0000000000000000000000030000'
b = hex(cid)[2:].zfill(8) + hex(lac)[2:].zfill(8)
c = hex(divmod(net,100)[1])[2:].zfill(8) + hex(divmod(net,100)[0])[2:].zfill(8)
string = (a + b + c + 'FFFFFFFF00000000').decode('hex')
try:
data = urllib.urlopen('http://www.google.com/glm/mmap',string)
r = data.read().encode('hex')
print r
except:
print 'connect error'
나는 루비 스크립트로 동일한 응답을 얻고 싶습니다. 제대로 요청을 구성 할 수 없으며 항상 badimplementation 오류 또는 http 501 오류가 발생합니다. 실수가 어디 있는지 말해 줄 수 있니? (루비 스크립트는 아래에 첨부되어 있습니다).
require 'net/http'
def fact(mnc,mcc,cid,lac)
a = '000E00000000000000000000000000001B0000000000000000000000030000'
b = cid.to_s(16).rjust(8,'0') + lac.to_s(16).rjust(8,'0')
c = mnc.to_s(16).rjust(8,'0') + mcc.to_s(16).rjust(8,'0')
string = [a + b + c + 'FFFFFFFF00000000'].pack('H*')
url = URI.parse('http://www.google.com/glm/mmap')
resp = Net::HTTP.post_form(url,string)
print resp
end
puts fact(5,240,40242,62211)
#을 <인터넷 :: HTTPNotImplemented : 0x107ffa0e8> 난 항상이 오류가 전무. –
또한 google api에 따라 키 값 쌍으로 게시해서는 안됩니다. 파이썬 스크립트에서 볼 수있는 것처럼 16 진수 문자열을 게시해야합니다. –
그래서 post_form을 사용할 수 없으며 대신 Net :: HTTP.request_post를 사용하십시오. 문자열을 매개 변수로 사용합니다. 서버가 여전히 501로 응답하면 시도한 실제 요청을보고 파이썬 스크립트에 의해 생성 된 요청과 비교하십시오. – Castilho