whoops! send escaped path+query on http request line; had been sending raw spaces (includes unit test)

This commit is contained in:
Noah Levitt
2014-01-27 16:57:37 -08:00
parent 21f04cdf79
commit b803ea0ec0
2 changed files with 13 additions and 1 deletions
@@ -167,7 +167,7 @@ class FetchHTTPRequest {
this.requestConfigBuilder.setProxy(this.proxyHost);
requestLineUri = curi.getUURI().toString();
} else {
requestLineUri = curi.getUURI().getPathQuery();
requestLineUri = curi.getUURI().getEscapedPathQuery();
}
if (curi.getFetchType() == FetchType.HTTP_POST) {
@@ -763,6 +763,18 @@ public class FetchHTTPTests extends ProcessorTestBase {
assertTrue(httpRequestString(curi).startsWith("GET /??blahblah HTTP/1.0\r\n"));
runDefaultChecks(curi, "requestLine");
}
public void testUrlWithSpaces() throws Exception {
CrawlURI curi = makeCrawlURI("http://localhost:7777/url with spaces");
fetcher().process(curi);
assertTrue(httpRequestString(curi).startsWith("GET /url%20with%20spaces HTTP/1.0\r\n"));
runDefaultChecks(curi, "requestLine");
curi = makeCrawlURI("http://localhost:7777/url%20with%20spaces");
fetcher().process(curi);
assertTrue(httpRequestString(curi).startsWith("GET /url%20with%20spaces HTTP/1.0\r\n"));
runDefaultChecks(curi, "requestLine");
}
@Override
protected FetchHTTP makeModule() throws IOException {