2017-01-06 41 views
0

我正在使用Spring MVC,並使用簡單的HTML表單。我正在使用GET方法向gracenote發送HTTPS請求,但我需要使用POST方法執行此操作。與GET它工作正常,但我不能讓它與POST方法工作。我需要接收JSON響應而不是XML。用POST方法甚至可以接收JSON響應嗎?我知道通過構建通過POST方法發送的XML請求鏈接,然後我收到XML響應(info:https://github.com/richadams/java-gracenote)。使用POST方法的Gracenote RhythmAPI請求

代碼GET方法:

我在recommended.jsp 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> 

模型getter和setter

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 { 

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}和{客戶機標籤}

這將是,如果真的很有幫助有人可以告訴我是否可以通過POST方法發送HTTPS請求,並接收JSON響應並給出一個簡單的例子。

+0

的你試過將是很好的東西一個小例子。爲什麼所有這些標籤?請刪除不相關的標籤。 – venerik

+0

對不起,我沒有注意到我把asp.net標記 – Tomeister

回答

0

是否有可能通過POST方法發送HTTPS請求,並收到 JSON響應

我認爲這是不可能的。 正如你已經知道你可以做你想要的東西,並沒有理由使用POST。如果這是您所擔心的,HTTPS URL中的CLIENT ID TAG將被加密。

更新:我仔細研究了一下,並相信這是可能的,但您使用POST請求發送的有效內容應該是XML而不是JSON。您可以使用以下方式以JSON格式回覆您的回覆;

POST https://c .web.cddbp.net /的WebAPI/FORMAT/1.0 /收音機/ (替換 'json的' 或 'XML' FORMAT)

+0

以及我需要使用POST時,我需要處理大量的信息,因爲GET只適用於少量數據。例如,使用GET時,處理圖像效率不高,而POST對圖像沒有任何問題 – Tomeister