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
Cédric Luthi
2011-01-06 03:12:43 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
Ben Copsey
2011-01-06 21:31:07 +0800
Commit
324bac0c32c7fdbaece906861068726a26468ed6
324bac0c
1 parent
19a72cf5
Provide encoding to htmlReadFile() and htmlReadMemory()
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
2 deletions
Classes/ASIWebPageRequest/ASIWebPageRequest.m
Classes/ASIWebPageRequest/ASIWebPageRequest.m
View file @
324bac0
...
...
@@ -145,6 +145,57 @@ static NSMutableArray *requestsUsingXMLParser = nil;
[[
self
externalResourceQueue
]
go
];
}
-
(
const
char
*
)
encodingName
{
xmlCharEncoding
encoding
=
XML_CHAR_ENCODING_NONE
;
switch
([
self
responseEncoding
])
{
case
NSASCIIStringEncoding
:
encoding
=
XML_CHAR_ENCODING_ASCII
;
break
;
case
NSJapaneseEUCStringEncoding
:
encoding
=
XML_CHAR_ENCODING_EUC_JP
;
break
;
case
NSUTF8StringEncoding
:
encoding
=
XML_CHAR_ENCODING_UTF8
;
break
;
case
NSISOLatin1StringEncoding
:
encoding
=
XML_CHAR_ENCODING_8859_1
;
break
;
case
NSShiftJISStringEncoding
:
encoding
=
XML_CHAR_ENCODING_SHIFT_JIS
;
break
;
case
NSISOLatin2StringEncoding
:
encoding
=
XML_CHAR_ENCODING_8859_2
;
break
;
case
NSISO2022JPStringEncoding
:
encoding
=
XML_CHAR_ENCODING_2022_JP
;
break
;
case
NSUTF16BigEndianStringEncoding
:
encoding
=
XML_CHAR_ENCODING_UTF16BE
;
break
;
case
NSUTF16LittleEndianStringEncoding
:
encoding
=
XML_CHAR_ENCODING_UTF16LE
;
break
;
case
NSUTF32BigEndianStringEncoding
:
encoding
=
XML_CHAR_ENCODING_UCS4BE
;
break
;
case
NSUTF32LittleEndianStringEncoding
:
encoding
=
XML_CHAR_ENCODING_UCS4LE
;
break
;
case
NSNEXTSTEPStringEncoding
:
case
NSSymbolStringEncoding
:
case
NSNonLossyASCIIStringEncoding
:
case
NSUnicodeStringEncoding
:
case
NSMacOSRomanStringEncoding
:
case
NSUTF32StringEncoding
:
default
:
encoding
=
XML_CHAR_ENCODING_ERROR
;
break
;
}
return
xmlGetCharEncodingName
(
encoding
);
}
-
(
void
)
parseAsHTML
{
webContentType
=
ASIHTMLWebContentType
;
...
...
@@ -160,10 +211,10 @@ static NSMutableArray *requestsUsingXMLParser = nil;
/* Load XML document */
if
([
self
downloadDestinationPath
])
{
doc
=
htmlReadFile
([[
self
downloadDestinationPath
]
cStringUsingEncoding
:
NSUTF8StringEncoding
],
NULL
,
HTML_PARSE_NONET
|
HTML_PARSE_NOWARNING
|
HTML_PARSE_NOERROR
);
doc
=
htmlReadFile
([[
self
downloadDestinationPath
]
cStringUsingEncoding
:
NSUTF8StringEncoding
],
[
self
encodingName
]
,
HTML_PARSE_NONET
|
HTML_PARSE_NOWARNING
|
HTML_PARSE_NOERROR
);
}
else
{
NSData
*
data
=
[
self
responseData
];
doc
=
htmlReadMemory
([
data
bytes
],
(
int
)[
data
length
],
""
,
NULL
,
HTML_PARSE_NONET
|
HTML_PARSE_NOWARNING
|
HTML_PARSE_NOERROR
);
doc
=
htmlReadMemory
([
data
bytes
],
(
int
)[
data
length
],
""
,
[
self
encodingName
]
,
HTML_PARSE_NONET
|
HTML_PARSE_NOWARNING
|
HTML_PARSE_NOERROR
);
}
if
(
doc
==
NULL
)
{
[
self
failWithError
:[
NSError
errorWithDomain
:
NetworkRequestErrorDomain
code
:
101
userInfo
:[
NSDictionary
dictionaryWithObjectsAndKeys
:
@"Error: unable to parse reponse XML"
,
NSLocalizedDescriptionKey
,
nil
]]];
...
...
Please
register
or
login
to post a comment