我们在Java(App Engine)后端中使用url-fetch服务,并使用它对运行在容器引擎上的其他组件进行HTTP调用。对于一个特定的请求,我们看到它非常一致,从而产生以下错误:
java.io.IOException: Malformed HTTP reply received from server at URL: ...
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.convertApplicationException(URLFetchServiceImpl.java:159)
at com.google.appengine.api.urlfetch.URLFetchServiceImpl.fetch(URLFetchServiceImpl.java:45)
我尝试重现app-engine组件使用curl发出的相同请求,但无法重现问题。本地应用程序引擎服务器也可以在完全相同的容器引擎服务器上正常工作。
这仅在生产应用引擎向该容器引擎服务器发出请求时发生。
我尝试搜索“从服务器收到的格式错误的HTTP回复”,但是几乎没有显示任何结果。
知道为什么会这样吗?异常stacktrace提到没有什么更有用的了,只是提到了URL。
答案 0 :(得分:0)
我建议您检查URL的长度。正如 feature request 中指出的那样,URL提取的当前最大长度为 2048个字符。如果确实是造成问题的原因,请将声音也添加到功能请求中。
您还应该阅读有关 limits and quotas 的URL提取方法。
还要考虑的另一件事是要获取的URL的证书。当App Engine发出出站HTTPS请求(获取网址)时,它将检查所请求网址的证书。如果出于任何原因证书无效,则App Engine会拒绝该请求。根据文档,将{strong> private IList<IWebElement> ListOfElements => Driver.FindElements(By.XPath("//p[contains(@id,'r-number-')]"));
//this finds all the p elements on the page with an id that contains r-number-
public void ClickEachOne()
{
// click each element in that list
foreach (var element in ListOfElements)
{
element.Click();
}
}
的值设置为{strong> verify_peer
。