gpt4 book ai didi

java - JsonpRequestBuilder访问google网页超时异常

转载 作者:行者123 更新时间:2023-12-01 13:59:35 25 4
gpt4 key购买 nike

所以我目前正在尝试使用 JsonpRequestBuilder API 来尝试访问远程文件,但是我只是使用 google 网页链接进行测试,并且遇到了超时异常。不太确定我在这里缺少什么。任何帮助将不胜感激。


package com.webapp.client;



<p>import java.util.logging.Logger;</p>

<p>import com.webapp.client.ExcelFileJavascriptObject;
import com.google.gwt.jsonp.client.JsonpRequestBuilder;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;</p>

<p>public class DataHttpRequest {</p>

<pre><code>private final String url2 = "http://www.google.ca";

private Logger logger = Logger.getLogger("DataRequest.java");

public void retrieveFile() {
JsonpRequestBuilder builder = new JsonpRequestBuilder();

builder.requestObject(url2,
new AsyncCallback<ExcelFileJavascriptObject>() {

@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
logger.severe(caught.getMessage());
logger.severe(caught.toString());
}

@Override
public void onSuccess(ExcelFileJavascriptObject result) {
// TODO Auto-generated method stub
Window.alert(result.toString());
}
});
}

public void onModuleLoad() {
retrieveFile();
}
</code></pre>

}


package com.webapp.client;



<p>import com.google.gwt.core.client.JavaScriptObject;</p>

<p>public class ExcelFileJavascriptObject extends JavaScriptObject{
protected ExcelFileJavascriptObject(){</p>

<pre><code>}
</code></pre>

}

最佳答案

您正在破坏 ' Some Origin Policy ' ajax 限制。如果您的 GWT 应用程序部署在“http://www.google.ca”,则只能使用 Ajax 下载该文件。 ' 我想这不是,不是吗?

从不同域获取信息的唯一方法是:使用 ' JSONP ' 就像您尝试使用的那样,或者 ' CORS ',在这两种情况下,其他域都应该与您的应用程序达成协议(protocol),以便在您想要使用 CORS 的情况下设置适当的 header ,或者如果您想要 JSONP,则为了用回调包装响应,它是什么您尝试请求的网址没有发生这种情况。

如果你想探索这两种方法,这个Ajax page我为 gwtquery 项目编写的内容可能会有用。

关于java - JsonpRequestBuilder访问google网页超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19417006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com