577 |
577 |
content = getattr(getattr(e, 'response', None), 'content', None)
|
578 |
578 |
raise WcsApiError('GET request failed', final_url, e, content)
|
579 |
579 |
else:
|
580 |
580 |
try:
|
581 |
581 |
return response.json()
|
582 |
582 |
except ValueError as e:
|
583 |
583 |
raise WcsApiError('Invalid JSON content', final_url, e)
|
584 |
584 |
|
585 |
|
def post_json(self, data, *url_parts):
|
|
585 |
def post_json(self, data, *url_parts, headers={'content-type': 'application/json'}):
|
586 |
586 |
url = self._build_url(url_parts)
|
587 |
587 |
params = {}
|
588 |
588 |
if self.email:
|
589 |
589 |
params['email'] = self.email
|
590 |
590 |
if self.name_id:
|
591 |
591 |
params['NameID'] = self.name_id
|
592 |
592 |
if self.orig:
|
593 |
593 |
params['orig'] = self.orig
|
594 |
594 |
query_string = urlparse.urlencode(params)
|
595 |
595 |
complete_url = url + ('&' if '?' in url else '?') + query_string
|
596 |
596 |
final_url = complete_url
|
597 |
597 |
if self.key:
|
598 |
598 |
final_url = signature.sign_url(final_url, self.key)
|
599 |
599 |
try:
|
600 |
|
response = self.requests.post(
|
601 |
|
final_url, data=json.dumps(data), headers={'content-type': 'application/json'}
|
602 |
|
)
|
|
600 |
response = self.requests.post(final_url, data=json.dumps(data), headers=headers)
|
603 |
601 |
response.raise_for_status()
|
604 |
602 |
except requests.RequestException as e:
|
605 |
603 |
content = getattr(getattr(e, 'response', None), 'content', None)
|
606 |
604 |
raise WcsApiError('POST request failed', final_url, e, content)
|
607 |
605 |
else:
|
608 |
606 |
try:
|
609 |
607 |
return response.json()
|
610 |
608 |
except ValueError as e:
|
611 |
|
-
|