2017-01-06 7 views
0

私はSpring MVCで作業しています。単純なHTMLフォームを使用しています。 GETメソッドを使用してgracenoteにHTTPSリクエストを送信していますが、POSTメソッドを使用して行う必要があります。 GETでは正常に動作しますが、POSTメソッドでは動作しません。そして私はXMLではなくJSONレスポンスを受け取る必要があります。 POSTメソッドでそれを行い、JSONレスポンスを受信することも可能ですか? XMLリクエストリンクを構築することで、POSTメソッドを介して送信しますが、次にXMLレスポンス(info:https://github.com/richadams/java-gracenote)を受け取ることがわかります。 recommended.jspでGracenote RhythmAPIリクエスト(POSTメソッドを使用)

私のHTMLフォーム

<spring:url value="/recommendedSongs.view" var="formUrl"/> 
<form:form action="${formUrl}" method="POST" modelAttribute="command"> 
    <form:label path="artistName">Artist name</form:label> 
    <form:input path="artistName" id="artistInput"/> 
    <form:label path="trackTitle">Track title</form:label> 
    <form:input path="trackTitle" id="trackInput"/> 
    <input type="submit" value="Submit"/> 
</form:form> 

モデルゲッターとセッター

public class RecommendedFormDataCommand { 

    private String artistName; 
    private String trackTitle; 

    public String getArtistName() { 
     return artistName; 
    } 

    public void setArtistName(String artistName) { 
     this.artistName = artistName; 
    } 

    public String getTrackTitle() { 
     return trackTitle; 
    } 

    public void setTrackTitle(String trackTitle) { 
     this.trackTitle = trackTitle; 
    } 

} 

HTMLフォーム

@RequestMapping(value = "/recommended.view") 
public ModelAndView artistTrackForm() { 
    return new ModelAndView("recommended", "command", new RecommendedFormDataCommand()); 
} 

@RequestMapping(value = "/recommendedSongs.view") 
public String artistTrackFormData(@ModelAttribute("command") RecommendedFormDataCommand rfd, 
            ModelMap model) throws IOException { 
からデータを受け取るために、コントローラコード:GETメソッドの

コード

HTTPS GETリクエスト

https://{CLIENT ID}.web.cddbp.net/webapi/json/1.0/radio/recommend?client={CLIENT ID}-{CLIENT TAG}&user={CLIENT ID}&seed=(text_artist_kendrick+lamar;text_track_King+Kunta%2Cking+kunta)&return_count=25 

注:私は私のクライアントタグとidを表示したくないので、私はこれらとそれらを置き換える:{クライアントID}と{CLIENTタグ}

それはもし本当に参考になりますPOSTメソッドを介してHTTPSリクエストを送信し、JSONレスポンスを受信して​​簡単な例を挙げることができるかどうかを誰かが教えてくれます。

+0

あなたがいいだろう試したものの少しの例( 'JSON' または 'XML' がFORMATを交換してください)。なぜそれらのタグはすべて?無関係のタグを削除してください。 – venerik

+0

申し訳ありませんが、私はasp.netタグ – Tomeister

答えて

0

POSTメソッドを経由してHTTPS要求を送信し、 JSONレスポンス

を受け取ることが可能であるならば、私はこれが不可能であると信じています。 あなたが知っているように、あなたはGETで望みのことをすることができ、POSTを使う理由はありません。これが心配な場合は、HTTPS URLのCLIENT ID TAGが暗号化されます。

UPDATED:もう少し調べましたが、これは可能ですが、POSTリクエストで送信するペイロードはJSONではなくXMLでなければなりません。 JSONで次のように応答を返すことができます。

POST https://c .web.cddbp.net/WEBAPI/FORMAT/1.0 /ラジオ/

+0

を置くことに気がつかなかったが、GETが少量のデータに対してのみ有効であるため、多くの情報を処理する必要があるときはPOSTを使用する必要がある。例えば、GETでは、画像に問題がない間は画像で作業するのは非効率です – Tomeister

関連する問題