我正在使用C#代码将数据发送到Django应用程序:
using (WebClient client = new WebClient())
{
NameValueCollection postData = new NameValueCollection()
{
{ "user_id", "12345" }
};
string pagesource = Encoding.UTF8.GetString(client.UploadValues(url_ad, postData));
}
但是我遇到了这个错误:
禁止(未设置CSRF cookie)
获取Django views.py
中数据的代码:
def get_user_id(request):
if request.method == 'POST':
user_id = request.POST.get('user_id')
record = User.objects.filter(user=user_id)
if not record:
new_user = User(user = user_id)
new_user.save()
return HttpResponse(
json.dumps(response_data),
content_type="application/json"
)
else:
return HttpResponse(
json.dumps({"nothing to see": "this isn't happening"}),
content_type="application/json"
)
我知道错误是什么以及如何在Web应用程序中修复它,但是当使用C#发送数据时,我不知道如何解决。
另外,由于我没有使用.NET Framework 4.5+,所以我不能使用HttpContent
,听说这可以解决该问题。
那么我该如何使用WebClient
或.NET Framework 4的任何其他可用解决方案对其进行修复?
答案 0 :(得分:0)
您可以通过在函数中添加以下修饰符来免除csrf检查:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def get_user_id(request):
...