POST データを Django アプリケーションに送信しようとする Java コードが少しあります。ただし、ビューが呼び出されることはありません。Java コードがヒットしたのと同じ URL をブラウザに貼り付けると、Django ビューが呼び出されます。何が欠けているのかわかりませんが、Java の書き込みに何か問題があるに違いありません。
これは、書き込みを行う Java 関数です。
public void executeWrite(String requestUrl, JsonObject jsonObject)
{
DataInputStream input = null;
try
{
URL url;
HttpURLConnection urlConn;
DataOutputStream printout;
System.out.println(requestUrl);
// URL of CGI-Bin script.
url = new URL (requestUrl);
// URL connection channel.
urlConn = (HttpURLConnection)url.openConnection();
// Let the run-time system (RTS) know that we want input.
urlConn.setDoInput (true);
// Let the RTS know that we want to do output.
urlConn.setDoOutput (true);
// No caching, we want the real thing.
urlConn.setUseCaches (false);
// Specify the content type.
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("content-type","application/json; charset=utf-8");
OutputStreamWriter wr = new OutputStreamWriter(urlConn.getOutputStream());
wr.write(jsonObject.toString());
wr.flush();
wr.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
関数に渡される requestURL は、Django ビューのものに直接対応するようになりました。requestURL は次のとおりです。
http://127.0.0.1:8000/events/rest/33456/create
これは Django Urlconfig です。
(r'^events/rest/(?P<key>\d+)/create', 'events.views.restCreateEvent'),
最後に、これは Java コードによって呼び出されることのないビューです
@csrf_exempt
def restCreateEvent(request, key):
#doesn't really matter what is in here it never runs
では、POST リクエストが Django サーバーによって受信されないというのは、何が間違っているのでしょうか? 私はそれを理解しようとして約 2 時間を費やしましたが、Java コードに問題は見つかりません。明らかに何かが間違っています。