当我从 https://electoralsearch.in/ 获取数据时,我在 Android 上遇到了非常奇怪的问题
我使用以下方式生成验证码:
在 iOS 和 Android 上
并尝试使用以下方式搜索用户:
问题是它在 iOS 中给出了预期结果,但在 Android 中导致错误页面。
https://electoralsearch.in/Error/ErrorPage
我也不拥有该网站:https://electoralsearch.in也不知道幕后发生了什么。
非常感谢您提供的任何帮助。我还附上了 Android 的代码 zip 供大家查看:
https://www.dropbox.com/s/dxnikqi4x7r8adz/Test.zip?dl=1
使用 BLN4315025 作为 EPICID 并声明为北方邦。
加载验证码的iOS代码是:
func loadCaptcha(){
let format = "E MMM dd yyyy HH:mm:ss 'GMT'Z (zzzzzz)"
let formatter = DateFormatter()
formatter.dateFormat = format
let dateString = formatter.string(from: Date())
if let url = "https://electoralsearch.in/Home/GetCaptcha?image=true&id=\(dateString)".URL(){
let urlRequest = URLRequest.init(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 10.0)
URLSession.shared.dataTask(with: urlRequest) { (data, response, error) in
// Print(data)
if data != nil{
if let image = UIImage.init(data: data!){
DispatchQueue.main.async {
self.captchaImageView.image = image
}
}
}
}.resume()
}
}
and searching the user using:
```func searchEPIC(){
self.endEditing(true)
var epicId:String?
var captcha:String?
var errorMessage:String?
func validateFrom() -> Bool{
if let val = self.epicIdTextField.text?.trimmedString(),
val.isValidInput(){
epicId = val
}else{
errorMessage = "Please enter EPIC Id!"
}
if let val = self.captchaTextField.text?.trimmedString(),
val.isValidInput(){
captcha = val
}else{
errorMessage = "Please enter Captcha Code!"
}
if errorMessage != nil{
// AlertController.shared.showError(errorMessage, "OK!", nil)
Print(errorMessage)
}
return String.isBlank(errorMessage) ? true : false
}
if validateFrom(){
let urlString = String(format:"https://electoralsearch.in/Home/searchVoter?epic_no=%@&page_no=1&results_per_page=10&reureureired=ca3ac2c8-4676-48eb-9129-4cdce3adf6ea&search_type=epic&state=%@&txtCaptcha=%@", epicId!, self.selectedStateId!, captcha!)
if let url = urlString.URL(){
let urlRequest = URLRequest.init(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 10.0)
URLSession.shared.dataTask(with: urlRequest) { (data, response, error) in
//
DispatchQueue.main.async {
self.reloadCaptcha()
}
if data != nil,
let responseData = data{
Print(responseData)
do {
let result = try JSONSerialization.jsonObject(with: responseData, options: .allowFragments)
Print(result)
self.processResult(result)
} catch {
if let string = String.init(data: responseData, encoding: .utf8){
Print(string)
}
Print(error)
}
}else{
Print(error)
}
}.resume()
}
}
}
```
最佳答案
你为什么不使用 API,我的工具也使用同样的 API
关于android - Rest API 在 Android 上重定向到错误页面,在 iOS 上按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58917630/