Toggle navigation
Toggle navigation
This project
Loading...
Sign in
iOS
/
asi-http-request
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Ben Copsey
2009-07-15 13:17:14 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
794b6ed44752d41f3b90b7a683033fb5d0aabcf7
794b6ed4
1 parent
531adde3
Fix 303 redirect behaviour, add a test for same
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
2 deletions
Classes/ASIHTTPRequest.m
Classes/Tests/ASIHTTPRequestTests.h
Classes/Tests/ASIHTTPRequestTests.m
Classes/ASIHTTPRequest.m
View file @
794b6ed
...
...
@@ -170,7 +170,6 @@ static NSError *ASITooMuchRedirectionError;
[
requestHeaders
setObject
:
value
forKey
:
header
];
}
// This function will be called either just before a request starts, or when postLength is needed, whichever comes first
// postLength must be set by the time this function is complete
-
(
void
)
buildPostBody
...
...
@@ -1022,8 +1021,16 @@ static NSError *ASITooMuchRedirectionError;
}
}
// Do we need to redirect?
if
([
self
shouldRedirect
])
{
if
([
self
shouldRedirect
]
&&
[
responseHeaders
valueForKey
:
@"Location"
]
)
{
if
([
self
responseStatusCode
]
>
300
&&
[
self
responseStatusCode
]
<
308
&&
[
self
responseStatusCode
]
!=
304
)
{
if
([
self
responseStatusCode
]
==
303
)
{
[
self
setRequestMethod
:
@"GET"
];
[
self
setPostBody
:
nil
];
[
self
setPostLength
:
0
];
[
self
setPostBodyFilePath
:
nil
];
[
self
setPostBodyWriteStream
:
nil
];
[
self
setRequestHeaders
:
nil
];
}
[
self
setURL
:[[
NSURL
URLWithString
:[
responseHeaders
valueForKey
:
@"Location"
]
relativeToURL
:[
self
url
]]
absoluteURL
]];
[
self
setNeedsRedirect
:
YES
];
}
...
...
Classes/Tests/ASIHTTPRequestTests.h
View file @
794b6ed
...
...
@@ -36,4 +36,5 @@
-
(
void
)
testRedirectPreservesSession
;
-
(
void
)
testTooMuchRedirection
;
-
(
void
)
testRedirectToNewDomain
;
-
(
void
)
test303Redirect
;
@end
...
...
Classes/Tests/ASIHTTPRequestTests.m
View file @
794b6ed
...
...
@@ -667,4 +667,17 @@
GHAssertTrue
(
success
,
@"Failed to redirect to a different domain"
);
}
// Ensure request method changes to get
-
(
void
)
test303Redirect
{
ASIHTTPRequest
*
request
=
[
ASIHTTPRequest
requestWithURL
:[
NSURL
URLWithString
:
@"http://asi/ASIHTTPRequest/tests/redirect_303"
]];
[
request
setRequestMethod
:
@"PUT"
];
[
request
appendPostData
:[
@"Fuzzy"
dataUsingEncoding
:
NSUTF8StringEncoding
]];
[
request
start
];
BOOL
success
=
[[[
request
url
]
absoluteString
]
isEqualToString
:
@"http://asi/ASIHTTPRequest/tests/request-method"
];
GHAssertTrue
(
success
,
@"Failed to redirect to correct location"
);
success
=
[[
request
responseString
]
isEqualToString
:
@"GET"
];
GHAssertTrue
(
success
,
@"Failed to use GET on new URL"
);
}
@end
...
...
Please
register
or
login
to post a comment