Tôi muốn ứng dụng Android của tôi có thể gửi một số thông tin đến máy chủ django của tôi. Vì vậy, tôi đã làm cho các ứng dụng Android gửi một yêu cầu bài đến trang mysite/tải lên và xem django cho trang này sẽ làm việc dựa trên dữ liệu bài. Vấn đề là phản hồi mà máy chủ cung cấp cho yêu cầu đăng khiếu nại về xác minh csrf không thành công. Nhìn vào vấn đề có vẻ như tôi có thể có để có được một mã thông báo csrf từ máy chủ đầu tiên sau đó làm bài với mã thông báo Nhưng tôi không chắc chắn làm thế nào tôi làm điều này. Chỉnh sửa: Tôi đã phát hiện ra rằng tôi có thể loại bỏ xác minh crsf cho chế độ xem này bằng cách sử dụng trình xem trang @csrf_exempt nhưng tôi không chắc chắn đây có phải là giải pháp tốt nhất hay không. mã Android của tôi:Android gửi yêu cầu gửi đến máy chủ django csrf không
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("scoreone", scoreone));
nameValuePairs.add(new BasicNameValuePair("scoretwo", scoretwo));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
System.out.println("huzahhhhhhh");
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null) {
sb.append(line + NL);
}
in.close();
String result = sb.toString();
System.out.println("Result: "+result);
và mã quan điểm của tôi để xử lý việc tải lên:
# uploads a players match
def upload(request):
if request.method == 'POST':
scoreone = int(request.POST['scoreone'])
scoretwo = int(request.POST['scoretwo'])
m = Match.objects.create()
MatchParticipant.objects.create(player = Player.objects.get(pk=1), match = m, score = scoreone)
MatchParticipant.objects.create(player = Player.objects.get(pk=2), match = m, score = scoretwo)
return HttpResponse("Match uploaded")
enter code here
tôi nhận được 403 lỗi, tôi đang làm điều tương tự . Bạn có thể giúp tôi, nếu bạn đã giải quyết được lỗi. –