环境:
Windows Server 2012 Standard
rhodes-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粘贴到Fiddler中似乎有效。当我删除'Accept-Encoding'=>'gzip,deflate,sdch'时,响应是相同的。
提前致谢。
答案 0 :(得分:0)
Rhodes使用libcURL在框架的v3.5中实现AsyncHTTP API,可以在sourcecode中看到。
因此,无论libcURL中可以做什么,在ASyncHTTP中都可以这样做。
在您的特定情况下,我可能会使用“Content-Type”而不是“Accept”标题:
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
)
如果您想在Rhodes v4.0中进行测试,现在可以使用相同方式使用的网络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))