Overview
Comment: | OFHTTPClient: Adjust to OFURL change
This now URL-encodes everything before sending the request. This wasn't |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
35b398fae47e7ddf8954a3a70bb7b440 |
User & Date: | js on 2017-10-31 22:18:32 |
Other Links: | manifest | tags |
Context
2017-10-31
| ||
22:27 | Make +[OFDate distant*] a class property check-in: bc218f2c07 user: js tags: trunk | |
22:18 | OFHTTPClient: Adjust to OFURL change check-in: 35b398fae4 user: js tags: trunk | |
22:06 | OFURL: Add -[URLEncoded*] for encoded components check-in: 03e111614e user: js tags: trunk | |
Changes
Modified src/OFHTTPClient.m from [b30a887ade] to [69a4197ea4].
︙ | ︙ | |||
79 80 81 82 83 84 85 | static OFString * constructRequestString(OFHTTPRequest *request) { void *pool = objc_autoreleasePoolPush(); of_http_request_method_t method = [request method]; OFURL *URL = [request URL]; | | | > > | | | | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | static OFString * constructRequestString(OFHTTPRequest *request) { void *pool = objc_autoreleasePoolPush(); of_http_request_method_t method = [request method]; OFURL *URL = [request URL]; OFString *path; OFString *user = [URL user], *password = [URL password]; OFData *body = [request body]; OFMutableString *requestString; OFMutableDictionary OF_GENERIC(OFString *, OFString *) *headers; OFEnumerator OF_GENERIC(OFString *) *keyEnumerator, *objectEnumerator; OFString *key, *object; if ([URL path] != nil) path = [URL URLEncodedPath]; else path = @"/"; requestString = [OFMutableString stringWithFormat: @"%s %@", of_http_request_method_to_string(method), path]; if ([URL query] != nil) { [requestString appendString: @"?"]; [requestString appendString: [URL URLEncodedQuery]]; } [requestString appendString: @" HTTP/"]; [requestString appendString: [request protocolVersionString]]; [requestString appendString: @"\r\n"]; headers = [[[request headers] mutableCopy] autorelease]; if (headers == nil) headers = [OFMutableDictionary dictionary]; if ([headers objectForKey: @"Host"] == nil) { OFNumber *port = [URL port]; if (port != nil) { OFString *host = [OFString stringWithFormat: @"%@:%@", [URL URLEncodedHost], port]; [headers setObject: host forKey: @"Host"]; } else [headers setObject: [URL URLEncodedHost] forKey: @"Host"]; } if (([user length] > 0 || [password length] > 0) && [headers objectForKey: @"Authorization"] == nil) { OFMutableData *authorizationData = [OFMutableData data]; OFString *authorization; |
︙ | ︙ |