所以我想获取youtube视频的元数据(比如说这个:https://www.youtube.com/watch?v=qlTA3rnpgzU
)。
我要编码并将其包装在另一个网址中:http://www.youtube.com/oembed?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DqlTA3rnpgzU&format=json
我的界面定义如下:
public interface YoutubeApi {
@GET ("oembed")
YoutubeMetaData metaData (@Query (QUERY_VIDEO_URL) final String url,
@Query(QUERY_FORMAT) final String alwaysJson);
}
这一切都很好,但我不想在这里指定除JSON之外的任何格式( format = json是此url的固定部分)。
有没有办法在我的界面声明中指定它并将我的界面缩小为:
public interface YoutubeApi {
@GET ("oembed")
@Magic ("format=json")
YoutubeMetaData metaData (@Query (QUERY_VIDEO_URL) final String url);
}
感谢。
答案 0 :(得分:36)
只需将其放在相对网址中即可:
public interface YoutubeApi {
@GET("oembed?format=json")
YoutubeMetaData metaData(@Query(QUERY_VIDEO_URL) String url);
}
答案 1 :(得分:0)
在kotlin中,您可以指定默认参数:
function request(opts) {
https
.request(opts, function (res) {
// IS THIS WHERE I GET THE REQUEST BODY, BUT HOW
// I NEED TO PUT IT IN A VARIABLE
res.setEncoding('utf8');
let body = '';
res.on('data', chunk => body += chunk);
res.on('end', () => {
console.log(body);
let json = JSON.parse(body);
console.log(json.state);
}
})
.end(opts.body || "");
}