2015-01-07 3 views
1

Я отправляю запрос на отправку Java (объект JSON) из своего приложения Java в мое приложение Django (на том же компьютере).500 Внутренняя ошибка сервера django java

Мой код для запроса ява части является:

HttpClient client = new DefaultHttpClient(); 
    HttpPost post = new HttpPost(myurl); 
    String json = jsonobject; 

    StringEntity entity = new StringEntity(json,"UTF-8"); 
    entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json")); 
    post.setEntity(entity); 
    try { 
     HttpResponse response1 = client.execute(post); 
     LOGGER.info("Reached " + response1); 
    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

И мой Python рассматривает функции выглядит следующим образом:

@csrf_exempt 
def rcvr1(request): 
    if request.method=="POST": 
     try: 
      return StreamingHttpResponse("here") 
     except: 
      return StreamingHttpResponse("not Here") 

    return StreamingHttpResponse("Unsuccessful") 

Запрос сообщение от Java поражает сервер, но дает ошибку:

HTTP/1.0 500 INTERNAL SERVER ERROR [Date: Wed, 07 Jan 2015 14:00:11 GMT, Server: WSGIServer/0.1 Python/2.7.6, X-Frame-Options: SAMEORIGIN, Content-Type: text/html]

+1

добавить DEBUG = True в вашем settings.py, чтобы увидеть ошибку –

+0

Это уже так, но где же шоу ошибка? –

+0

Это было бы в ответ, вы могли бы свалить больше с вашего java-клиента, но поскольку он не работает даже после проверки 'POST', вы также можете проверить его с помощью вашего браузера через' GET' –

ответ

0

Вы не можете передать строку в StreamingHttpResponse, это должен быть генератор ,

Пока вы не сделаете это изменение, вы можете проверить выше, используя вместо этого HttpResponse.

HttpResponse("Your text here") 
+0

Без изменений, я даже добавил печать «check», перед моим if request.method == «POST», это не печать «проверка», и она по-прежнему дает ту же ошибку 07/Jan/2015 16:04:51] «POST/jsonabc HTTP/1.1» 500 69625 - терминал (где запускается сервер django) и выше, где код Java запущен –

+0

в порядке, я бы порекомендовал иметь 'DEBUG = True' в ваших настройках, как это было предложено в ответ, и ударить этот URL с помощью GET с тех пор должен работать в любом случае. Также, если у вас есть нестандартное промежуточное ПО, вы должны перечислить его в своем вопросе. Наконец, проверьте, что вы импортируете все, на что ссылаетесь. –