Android отправляет почтовые запросы на сервер django csrf с ошибкой

Я хотел бы, чтобы мое приложение для Android могло отправлять некоторую информацию на мой сервер django.Поэтому я заставил приложение для Android отправить запрос публикации на страницу mysite / upload, и представление django для этой страницы будет работать на основе данных публикации. Проблема это ответ, который сервер дает на почтовый запрос, жалуется на csr f проверка не удалась. Заглянув в проблему, мне кажется, что мне, возможно, придется сначала получить токен csrf с сервера, а затем отправить сообщение с этим токеном. Но я не уверен, как я это делаю. Изменить: я обнаружил, что могу отключить проверку crsf для этого представления с помощью декоратора представления @csrf_exempt, но я не уверен, что это лучшее решение. Мой код Android:

// 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);

и мой код представлений для обработки загрузки:

# 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
10
задан Jayyyyy 12 February 2012 в 20:47
поделиться