2016-04-10 5 views
0

私はPHPサーバーにJSON文字列をポストしようとしていますが、サーバー側で何も起こっていません。ここでPHPサーバーへのjava httpポスト、何も起こっていません

は、サーバーのコードです:

public void sendError(Error e) 
{ 
    String json = e.toJSONString(); 
    try 
    { 
     if(url == null) 
     { 
      url = new URL("http://www.rstougaard.dk/errorHandler"); 
     } 
     if(conn == null) 
     { 
      conn = (HttpURLConnection) url.openConnection(); 
     } 
     conn.setDoInput(true); 
     conn.setDoOutput(true); 
     conn.setRequestMethod("POST"); 
     conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); 
     conn.setRequestProperty("json", URLEncoder.encode(json)); 
     output = new DataOutputStream(conn.getOutputStream()); 

     conn.connect(); 
     output.writeBytes("json=" + URLEncoder.encode(json, "UTF-8")); 
     output.flush(); 
     BufferedReader input = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
     while(input.ready()) 
     { 
      System.out.println(input.readLine()); 
     } 

     System.out.println(conn.getResponseCode() + " " + conn.getResponseMessage()); 
    } catch (MalformedURLException ex) 
    { 
     Logger.getLogger(ConnectionController.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (IOException exc) 
    { 
     Logger.getLogger(ConnectionController.class.getName()).log(Level.SEVERE, null, exc); 
    } 
} 

.getResponseCode()と.getResponseMessage()はそれぞれ '200' を返し、 'OK':

<?php 
    $json = $_POST['json']; 
    $decoded = json_decode($json); 
    echo($decoded); 
?> 

そしてここでは、Javaコードがあります。そして、inputStreamはJSON文字列が続くサイトからphpコードを出力します。これは私には奇妙なものです。

ここには何が見つかりませんか?私は私がチェックするために、カール使用して試してみました).setResponseMethodでPOST "(「をGET"。しかし、まだdidntの仕事。

EDIT

を変更した

EDIT

サーバーレスポンスですが、javaコード内のinputStreamと同じことです。ウェブサイトからhtml/phpコードを出力します。

+0

サービス側をカールでテストしましたか? –

+0

サーバーログを確認しましたか? – m02ph3u5

+0

明日の前にサーバーログにアクセスできません。 one.comは自分のドメインをホストしているもので、所有者が自分のログファイルにアクセスできるようにしていません.... :( – Pogoe

答えて

0

同類のようなもので、事前にサーバーの応答をテストしようとする可能性があり、

また、「POST」にそれを変更してみてください。私は基本的に愚かで、コードを実行した場合、クロムに何らかの出力があったかどうかを確認することができましたが、もちろんそうではありませんでした。なぜなら、それは別の要求であり、衝突しないからです。

私の場合、上記のコードは意図した通りです。とにかく皆さんに助けてくれてありがとうございました。

0

クライアントコードからGETリクエストを送信している可能性があります:

conn.setRequestMethod("GET"); 

サーバーはPOSTをチェックしますが、エフゲニー・レベデフが示唆したように、あなたはCURLまたは私が間違っていたものを考え出し

+0

私はPOSTに変更しようとしましたが、同じことです..そしてどうすればいいですかCURLの使用について? – Pogoe

+0

Pogoe curlは、POSTを含むリクエストをサーバーに送信できるツールです。実際には、ブラウザでWeb開発ツールを使用して同じことが可能です。サーバーが応答を返します。サーバーが正常に機能する場合は、CURLのJavaコード – micklesh

+0

の変更例に進みます。例については、[link](http://stackoverflow.com/questions/7172784/how-to- json-data-with-curl-from-terminal-command-to-test-spring-rest) とブラウザ用のWeb開発ツール(私はFFを使用していますので、 [ネットワーク]タブをクリックし、あなたの投稿要求を再送信してください正しいヘッダーと内容を使用して消去する – micklesh

関連する問題