iosswiftbetfair

INPUT_VALIDATION_ERROR in BetFair Login API / iOS


I am getting INPUT_VALIDATION_ERROR while logging into betfair api. I am following the docs, but it was of no use with this particular error code.

I'd appreciate if anyone could guide me in the right direction.

Here is my swift code

let request = NSMutableURLRequest(URL: NSURL(string: "https://identitysso.betfair.com/api/login")!)
        request.HTTPMethod = "POST"


                request.setValue("application/json", forHTTPHeaderField: "Accept")
        request.setValue("MY_APP_KEY", forHTTPHeaderField: "X-Application")


        let postString = "username=MY_USER_NAME&password=MY_PASSWORD"
        request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)

        let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
            guard error == nil && data != nil else {                                                          // check for fundamental networking error
                print("error=\(error)")
                return
            }

            if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {           // check for http errors
                print("statusCode should be 200, but is \(httpStatus.statusCode)")
                print("response = \(response)")
            }

            let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print("responseString = \(responseString)")
        }
        task.resume()

Solution

  • I think you need to set header in http for Content-Type as

    application/x-www-form-urlencoded
    

    Three parameters in Http header:

        httpRequest.setHeader("Accept", "application/json");
        httpRequest.setHeader("Content-Type", "application/x-www-form-urlencoded");
        httpRequest.setHeader("X-Application", <apiKey>);