2017-01-06 11 views
0

Я работаю с Spring MVC, и я использую простую форму HTML. Я отправляю запрос HTTPS для gracenote с использованием метода GET, но мне нужно сделать это с помощью метода POST. С GET он отлично работает, но я не могу заставить его работать с методом POST. И мне нужно получить ответ JSON, а не XML. Возможно ли это сделать с помощью метода POST и получить ответ JSON? Я знаю, что, построив ссылку XML-запроса, я отправляю через метод POST, но затем получаю XML-ответ (info: https://github.com/richadams/java-gracenote).Gracenote RhythmAPI запрос с использованием метода POST

Код для метода GET:

Мой HTML форма recommended.jsp

<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 { 

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} и {КЛИЕНТ TAG}

Было бы очень полезно, если кто-то может сказать мне, можно ли отправить запрос HTTPS через метод POST и получить ответ JSON и дать простой пример.

+0

Маленький пример того, что вы пытались бы неплохо. И почему все те теги? Удалите ненужные теги. – venerik

+0

Извините за это, я не заметил, что я положил тег asp.net – Tomeister

ответ

0

если можно отправить запрос HTTPS с помощью метода POST и получать JSON ответ

Я считаю, что это не возможно. Как вы уже знаете, вы можете делать то, что хотите, с GET и не имеете причины использовать POST. Идентификатор идентификатора CLIENT в URL-адресе HTTPS будет зашифрован, если об этом вас беспокоит.

ОБНОВЛЕНО: я просмотрел его немного больше и считаю, что это возможно, но полезная нагрузка, которую вы отправляете с запросом POST, должна быть XML, а не JSON. Вы можете получить ответ в JSON, используя следующее:

POST https://c .web.cddbp.net/WebAPI/FORMAT/1,0/радио/ (заменить формат с 'JSON' или 'XML')

+0

. Мне нужно было бы использовать POST, когда мне нужно было обрабатывать много информации, так как GET хорош только для небольшого количества данных. Например, с GET было бы неэффективно работать с изображениями, в то время как POST не имеет проблем с изображениями – Tomeister

 Смежные вопросы

  • Нет связанных вопросов^_^