500 内部服务器错误 django java
Posted
技术标签:
【中文标题】500 内部服务器错误 django java【英文标题】:500 Internal server error django java 【发布时间】:2015-03-05 10:54:24 【问题描述】:我正在从我的 Java 应用程序向我的 Django 应用程序(在同一台机器上)发送一个 Java 发布请求(JSON 对象)。
我的 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 的 post 请求正在访问服务器,但出现错误:
HTTP/1.0 500 内部服务器错误 [日期:2015 年 1 月 7 日星期三 14:00:11 GMT,服务器:WSGIServer/0.1 Python/2.7.6,X-Frame-Options:SAMEORIGIN, 内容类型:text/html]
【问题讨论】:
在您的 settings.py 中添加 DEBUG=True 以查看错误 已经是真的了,但是错误显示在哪里? 它将在响应中,您可以从您的 java 客户端转储更多信息,但由于它在检查POST
之前就失败了,您也可以通过 GET
使用浏览器检查它
【参考方案1】:
您不能将字符串传递给StreamingHttpResponse,它必须是生成器。
在您进行更改之前,您可以改用HttpResponse 来测试上述内容。
HttpResponse("Your text here")
【讨论】:
没有变化,我什至在我的 if request.method=="POST" 之前添加了打印“检查”,它没有打印“检查”,它仍然给出相同的错误 07/Jan/2015 16:04:51] "POST /jsonabc HTTP/1.1" 500 69625 - 终端(运行 django 服务器的地方)和上面提到的运行 java 代码的地方 好的,我建议在您的设置中使用DEBUG=True
,按照答案的建议并使用 GET 访问该 URL,因为该打印应该以任何一种方式运行。此外,如果您有任何非标准中间件,您应该在您的问题中列出它。最后检查您是否正在导入您引用的所有内容。以上是关于500 内部服务器错误 django java的主要内容,如果未能解决你的问题,请参考以下文章
处理 Django Rest Framework 中的 500 个内部错误
Django - collectstatic 后出现 500 内部服务器错误
Django 部署到 AWS EB 显示 500 内部服务器错误