gpt4 book ai didi

java - 使用 Spring 和 App Engine 任务队列处理非英语 URL

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:23 24 4
gpt4 key购买 nike

我遇到了这个问题,我需要使用 TaskQueue 对页面链接进行排队:

        Queue queue = QueueFactory.getDefaultQueue();
for (String href : hrefs){
href = baseUrl + href;
pageLinks = pageLinks + "\n" + href;
queue.add(TaskOptions.Builder
.withUrl("/crawler")
.param("url", href));
l("Added to queue url=["+href+"]");
}

这里的问题是,我认为传递到队列中的 URL 包含阿拉伯字符的 ?。因为它不断重新安排。

字符串 pageLinks 然而是通过 Spring MVC 在浏览器中输出的,我可以正确地看到正在显示的阿拉伯字符。所以我很高兴链接没问题。

如果我复制浏览器上输出的链接之一,并将其​​粘贴到浏览器 URL,则效果很好。所以我很确定队列不断重新安排的原因是因为它获取了错误的 URL。

我在这里可能缺少什么?在将String href传递到队列之前是否需要转换它?

抓取服务如下所示:

@RequestMapping(method = RequestMethod.GET, value = "/crawl",
produces = "application/json; charset=iso-8859-6")
public @ResponseBody String crawl(HttpServletRequest req, HttpServletResponse res,
@RequestParam(value="url", required = false) String url) {
l("Processs url:" + url);
}

我还需要将这里的@QueryParam字符串url转换为阿拉伯语吗?

最佳答案

您必须Url-encode参数。看这个问题:Java URL encoding of query string parameters

关于java - 使用 Spring 和 App Engine 任务队列处理非英语 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16645296/

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