Opened 7 years ago
Closed 7 years ago
#29621 closed Bug (needsinfo)
Different Http requests behaviour between python shell and Django shell
Description ¶
Issue Summary ¶
I’m using the sendgrid api to add recipients, the server response is good, though nothing is added. and thats because i’m using Django manager shell.
Steps to Reproduce ¶
I used this script to add the recipient:
import sendgrid service = sendgrid.SendGridAPIClient(apikey=API_KEY) response = service.client.contactdb.recipients.post( request_body=[{ 'created': 1234543, 'email': 'test@test.co', 'first_name': 'John', 'last_name': '', 'gender': 'M', }] ) print(response.status_code) 201 print(response.body) '{"new_count":1,"updated_count":0,"error_count":0,"error_indices":[],"unmodified_indices":[],"persisted_recipients":["dG90b0B0dXQuY29t"],"errors":[]}\n' print(response.headers) {'Server': 'nginx', 'Date': 'Wed, 01 Aug 2018 08:34:11 GMT', 'Content-Type': 'application/json', 'Content-Length': '149', 'Connection': 'keep-alive', 'Access-Control-Allow-Methods': 'HEAD, GET, PUT, POST, DELETE, OPTIONS, PATCH', 'Access-Control-Max-Age': '21600', 'Access-Control-Expose-Headers': 'Link, Location', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Headers': 'AUTHORIZATION, Content-Type, On-behalf-of, x-sg-elas-acl, X-Recaptcha', 'Content-Security-Policy': "default-src https://api.sendgrid.com; frame-src 'none'; object-src 'none'", 'X-Content-Type-Options': 'nosniff', 'Strict-Transport-Security': 'max-age=31536000', 'X-Ratelimit-Remaining': '2', 'X-Ratelimit-Limit': '3', 'X-Ratelimit-Reset': '1533112452', 'Powered-By': 'Mako'}
I checked if it is added .. and nothing was added
I tried the same thing with postman, and everything worked normally with no problem, and i found the recipient.
After I tried with requests
import requests url = 'https://api.sendgrid.com/v3/contactdb/recipients' headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer %s' % API_KEY, 'Cache-Control': 'no-cache', } data = json.dumps([{ 'created': 1234543,, 'email': 'test@test.co', 'first_name': 'John', 'last_name': '', 'gender': 'M', }]) response = requests.post(url, headers=headers, data=data) response <Response [201]> response.text '{"new_count":1,"updated_count":0,"error_count":0,"error_indices":[],"unmodified_indices":[],"persisted_recipients":["ZXhhbXBsZUBleGFtcGxlLmNvbQ=="],"errors":[]}\n'
Again .. nothing was added.
and all this time I was running these scripts in Django manager shell in dev mode,
after when I used the same scripts in python shell, it works correctly, and I recipient is added, so I have no idea whats going on !!!!!
I also tried with Django manager shell in prod mode, same problem !
NB: The problem also occurs on celery workers with Django code.
Technical details ¶
- sendgrid-python Version: 5.4.1
- Python Version: 3.7
- Django Version: 2.0.7
You need to debug the issue yourself and explain why Django is at fault. If you can't do that, then you could try asking for help in our support channels.