[英]Django HTTP Post Request from iOS
我正在使用Django REST框架。
@api_view(['POST'])
def image_params(request, format=None):
if request.method == 'POST':
print request.DATA
size = request.POST.get('size')
colour = request.POST.get('colour')
get_clothes = Clothes.objects.filter( Q(clothescolour=colour) | Q(clothessize=size))
serializer = ClothesSerializer(get_clothes, many=True)
result = serializer.data
print result
return Response(result,status=status.HTTP_201_CREATED)
我正在使用POSTMAN客戶端發送POST請求,在form-data
, key
為colour
, value
red
。 它運行完美,我得到了預期的結果。 這是print request.DATA
。DATA如下所示:
<QueryDict: {u'colour': [u'red']}>
當我從iOS發送實際請求時, print request.DATA
如圖所示,並且過濾查詢失敗。
{u'colour': u'red'}
這是我在iOS中構造HTTP Post Request的方法:
NSDictionary* requestData = [NSDictionary dictionaryWithObjectsAndKeys:
@"red",
@"colour",
nil];
NSError *postError;
NSData *postData = [NSJSONSerialization dataWithJSONObject:requestData options:NSJSONWritingPrettyPrinted error:&postError];
[postRequest setHTTPMethod:@"POST"];
[postRequest setHTTPBody:postData];
[postRequest setValue:@"application/json;charset=utf-8" forHTTPHeaderField:@"Content-Type"];
我該怎么做才能使這項工作?
使用POSTMAN,您將發送表單數據;使用iOS,您將發送json數據。 這就是為什么它被不同地解析的原因。 您需要在POSTMAN上設置Content-Type: application/json
標頭並發送原始數據:
{“顏色”:“黑色”}
這樣,您將在兩者上獲得相同的dict格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.