︙ | | | ︙ | |
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
@interface OFHTTP: OFObject
{
OFArray *_URLs;
size_t _URLIndex;
int _errorCode;
OFString *_outputPath;
bool _continue, _detectFileName, _quiet;
OFDataArray *_entity;
of_http_request_method_t _method;
OFMutableDictionary *_clientHeaders;
OFHTTPClient *_HTTPClient;
char *_buffer;
OFStream *_output;
intmax_t _received, _length, _resumedFrom;
ProgressBar *_progressBar;
|
|
|
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
@interface OFHTTP: OFObject
{
OFArray *_URLs;
size_t _URLIndex;
int _errorCode;
OFString *_outputPath;
bool _continue, _detectFileName, _quiet;
OFDataArray *_body;
of_http_request_method_t _method;
OFMutableDictionary *_clientHeaders;
OFHTTPClient *_HTTPClient;
char *_buffer;
OFStream *_output;
intmax_t _received, _length, _resumedFrom;
ProgressBar *_progressBar;
|
︙ | | | ︙ | |
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
[of_stderr writeFormat:
@"Usage: %@ -[cehHmoOPq] url1 [url2 ...]\n",
[OFApplication programName]];
if (full)
[stream writeString:
@"\nOptions:\n"
@" -c Continue download of existing file\n"
@" -e Specify the file to send as entity\n"
@" -h Show this help\n"
@" -H Add a header (e.g. X-Foo:Bar)\n"
@" -m Set the method of the HTTP request\n"
@" -o Specify output file name\n"
@" -O Do a HEAD request to detect file name\n"
@" -P Specify SOCKS5 proxy\n"
@" -q Quiet mode (no output, except errors)\n"];
|
>
<
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
[of_stderr writeFormat:
@"Usage: %@ -[cehHmoOPq] url1 [url2 ...]\n",
[OFApplication programName]];
if (full)
[stream writeString:
@"\nOptions:\n"
@" -b Specify the file to send as body\n"
@" -c Continue download of existing file\n"
@" -h Show this help\n"
@" -H Add a header (e.g. X-Foo:Bar)\n"
@" -m Set the method of the HTTP request\n"
@" -o Specify output file name\n"
@" -O Do a HEAD request to detect file name\n"
@" -P Specify SOCKS5 proxy\n"
@" -q Quiet mode (no output, except errors)\n"];
|
︙ | | | ︙ | |
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
of_range(pos + 1, [header length] - pos - 1)];
value = [value stringByDeletingEnclosingWhitespaces];
[_clientHeaders setObject: value
forKey: name];
}
- (void)setEntity: (OFString*)entity
{
[_entity release];
_entity = [[OFDataArray alloc] initWithContentsOfFile: entity];
}
- (void)setMethod: (OFString*)method
{
void *pool = objc_autoreleasePoolPush();
method = [method uppercaseString];
|
|
|
|
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
of_range(pos + 1, [header length] - pos - 1)];
value = [value stringByDeletingEnclosingWhitespaces];
[_clientHeaders setObject: value
forKey: name];
}
- (void)setBody: (OFString*)body
{
[_body release];
_body = [[OFDataArray alloc] initWithContentsOfFile: body];
}
- (void)setMethod: (OFString*)method
{
void *pool = objc_autoreleasePoolPush();
method = [method uppercaseString];
|
︙ | | | ︙ | |
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
[OFApplication terminateWithStatus: 1];
}
}
- (void)applicationDidFinishLaunching
{
OFOptionsParser *optionsParser =
[OFOptionsParser parserWithOptions: @"ce:hH:m:o:OP:q"];
of_unichar_t option;
while ((option = [optionsParser nextOption]) != '\0') {
switch (option) {
case 'c':
_continue = true;
break;
case 'e':
[self setEntity: [optionsParser argument]];
break;
case 'h':
help(of_stdout, true, 0);
break;
case 'H':
[self addHeader: [optionsParser argument]];
break;
case 'm':
|
|
>
>
>
<
<
<
|
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
[OFApplication terminateWithStatus: 1];
}
}
- (void)applicationDidFinishLaunching
{
OFOptionsParser *optionsParser =
[OFOptionsParser parserWithOptions: @"bc:hH:m:o:OP:q"];
of_unichar_t option;
while ((option = [optionsParser nextOption]) != '\0') {
switch (option) {
case 'b':
[self setBody: [optionsParser argument]];
break;
case 'c':
_continue = true;
break;
case 'h':
help(of_stdout, true, 0);
break;
case 'H':
[self addHeader: [optionsParser argument]];
break;
case 'm':
|
︙ | | | ︙ | |
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
|
} @catch (OFStatItemFailedException *e) {
}
}
request = [OFHTTPRequest requestWithURL: URL];
[request setHeaders: clientHeaders];
[request setMethod: _method];
[request setEntity: _entity];
if ((response = [self performRequest: request]) == nil) {
_errorCode = 1;
goto next;
}
headers = [response headers];
|
|
|
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
|
} @catch (OFStatItemFailedException *e) {
}
}
request = [OFHTTPRequest requestWithURL: URL];
[request setHeaders: clientHeaders];
[request setMethod: _method];
[request setBody: _body];
if ((response = [self performRequest: request]) == nil) {
_errorCode = 1;
goto next;
}
headers = [response headers];
|
︙ | | | ︙ | |