如何正确设置Rhomobile API调用的请求标头?
问题描述:
环境:如何正确设置Rhomobile API调用的请求标头?
的Windows Server 2012标准
罗德-3.5.1.13 - MotorolaRhoMobileSuite2.2.1.13
jQuery Mobile的1.6.4
的Java jdk1.6.0_24
说明: 使得在此之后致电..
Rho::AsyncHttp.get( :url => url, :headers => { 'Accept'=>'application/json', 'Accept-Encoding'=>'gzip,deflate,sdch', 'Accept-Language'=>'en-US,en;q=0.8' }, :callback => callback, :callback_param => callback_param )
...此请求的结果返回以下内容:
"Rho::AsyncHttp....callback_param)" {"rho_callback"=>"1", "status"=>"error", "error_code"=>"1", "headers"=>{"Accept"=>"application/json", "Accept-Encoding"=>"gzip,deflate,sdch", "Accept-Language"=>"en-US,en;q=0.8", "User-Agent"=>"Mozilla-5.0 (ANDROID; Win32; 4.0.3)"}, "body"=>""}
问题: 在允许我传递给此调用的标头上是否存在Rhomobile限制?它似乎工作,如果我把url,标题,粘贴到提琴手。当我删除'Accept-Encoding'=>'gzip,deflate,sdch'时,响应是一样的。
在此先感谢。
答
Rhodes使用libcURL在框架的v3.5中实现AsyncHTTP API,尽可能在sourcecode中看到。
所以无论在libcURL中可以做什么,在ASyncHTTP中都可以做到。如果你想在罗德V4.0现在来测试这一点,有网络
Rho::AsyncHttp.get(
:url => url,
:headers => {
'Content-Type'=>'application/json',
'Accept-Encoding'=>'gzip,deflate,sdch',
'Accept-Language'=>'en-US,en;q=0.8'
},
:callback => callback,
:callback_param => callback_param
)
:
在您的特定情况下,我可能会使用“内容类型”,而不是“接受”头您可以以相同的方式使用API:
getProps = Hash.new
getProps['url'] = url
getProps['headers'] = {"Content-Type" => "application/json",
"Accept-Encoding"=>"gzip,deflate,sdch",
"Accept-Language"=>"en-US,en;q=0.8"}
Rho::Network.get(getProps, url_for(:action => :callback))