小编Chr*_*ris的帖子

改造 - @Body参数不能与表单或多部分编码一起使用

我试图提出一个请求,我想要包含一个Header,一个form-urlencoded字段和一个json体.我的Retrofit界面如下

@FormUrlEncoded
@POST("/api/register")
Observable<RegisterResponse> register(
    @Header("Authorization") String authorization, 
    @Field("grant_type") String grantType, 
    @Body RegisterBody body
);
Run Code Online (Sandbox Code Playgroud)

当我提出这个请求时,我得到了异常@Body参数,不能与表单或多部分编码一起使用.
我也尝试过@Multipart注释:

@Multipart
@FormUrlEncoded
@POST("/api/register")
Observable<RegisterResponse> register(
    @Header("Authorization") String authorization, 
    @Part("grant_type") TypedString grantType, 
    @Body RegisterBody body
);
Run Code Online (Sandbox Code Playgroud)

我得到一个IllegalArgumentException,只允许一个编码注释.

api android square retrofit

44
推荐指数
3
解决办法
5万
查看次数

为什么我应该在Google Nodejs客户端库的Actions中使用dialogflow()而不是actionssdk()

基于V1到V2 Node.js客户端库迁移指南,有两种方法可以收听对话

所以来自V1的以下代码

const {DialogflowApp } = require('actions-on-google');

const actionMap = new Map();

actionMap.set('input.welcome', app => {   app.ask('How are you?'); });

...
Run Code Online (Sandbox Code Playgroud)

可以用dialogflow模块替换

const { dialogflow } = require('actions-on-google');
const app = dialogflow();

app.intent('Default Welcome Intent', conv => {   conv.ask('How are you?'); });
Run Code Online (Sandbox Code Playgroud)

或动作SDK模块

const { actionssdk } = require('actions-on-google');
const app = actionssdk();

app.intent('actions.intent.MAIN', conv => {   conv.ask('How are you?'); });
Run Code Online (Sandbox Code Playgroud)

在第一种情况(对话框流)中,您通过名称来识别Intent,但在第二种情况下(actionSdk),您可以从操作名称识别它.

为什么我要使用一个而不是另一个,每种方法的好处和局限是什么?

node.js actions-on-google

1
推荐指数
1
解决办法
64
查看次数

标签 统计

actions-on-google ×1

android ×1

api ×1

node.js ×1

retrofit ×1

square ×1