﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
29621	Different Http requests behaviour between python shell and Django shell	Zaghbane Safiy Errahmane	nobody	"
== 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"	Bug	closed	Uncategorized	2.0	Normal	needsinfo	#manager_shell #requests		Unreviewed	0	0	0	0	0	0
