Abhijit Kumbhar
Abhijit Kumbhar

Reputation: 951

How to resolve TypeError get() takes exactly 2 arguments (3 given) in Python request using get method

I am getting an error while using Request object in Python. Below is my code.

class APIDOC(Document):
    def request_api(self):
        method_type = self.method_type
        api = self.api
        parameters = self.parameters
        session_object = requests.session()
        self.get_login(session_object)
        if method_type == "POST":   
            data = {}
            for param in parameters:
                data[param.key] = param.value
            response = session_object.post(api,data)
            if response.status_code == 200:
                return response.text
            else:
                return "Error while getting response error code:{0}".format(response.status_code)
        elif method_type == "GET":
            data = {}
            for param in parameters:
                data[param.key] = param.value 
            print("____________________________",data)
            response = session_object.get(api,data)
            if response.status_code == 200:
                return response.text
            else:
                return "Error while getting response error code:{0}".format(response.status_code)

After reffering one document on requests in python I found below things for "GET" method

r = requests.get('http://httpbin.org/get', params=payload)

But on executing the same I got an error

response = session_object.get(api,data) TypeError: get() takes exactly 2 arguments (3 given)

Upvotes: 3

Views: 1286

Answers (1)

wim
wim

Reputation: 362458

To send parameters with a GET, you'll need to specify them by keyword:

session_object.get(api, params=data)

Upvotes: 3

Related Questions