我正在尝试使用改装2发出POST请求。请求类型是表单数据
而不是应用程序/x-www-form-urlencoded
。
我只是发布数据,而不是请求中的文件,响应是JSON的形式。
我尝试了@FormUrlEncoded,@Multipart
,但它不起作用。
我已经尝试按照要求
1.第一次尝试
@FormUrlEncoded
@POST("XXXX")
Call<PlanResponse> getPlanName(@Field(Constants.ACTION_ID) String actionId, @Field(Constants.OFFER_CODE) String offerCode);
2.第二次尝试
@Headers({"Content-Type: multipart/form-data","Content-Type: text/plain"})
@FormUrlEncoded
@POST("XXXX")
Call<PlanResponse> getPlans(@Body @FieldMap(encoded = false) Map<String, String> data);
3.第三次尝试
@Headers("Content-Type: multipart/form-data")
@Multipart
@POST("XXXX")
Call<PlanResponse> myPlans(@Part(Constants.ACTION_ID) String actionId, @Part(Constants.OFFER_CODE) String offerCode);
我只得到了空的身体。它正在和邮递员一起工作。
我也搜索了form-data
和Application/x-wow-form-urlencoded
,发现如果数据是二进制的,则使用form-data
,如果数据是ASCII,则使用Application/x-wow-form-urlencoded
我试图找到表单数据是否不支持改造?
POSTMAN请求
Cache-Control: no-cache
Postman-Token: XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundaryXXXXXXXXXXXX
----WebKitFormBoundaryXXXXXXXXXXXX
Content-Disposition: form-data; name="actionId"
1000
----WebKitFormBoundaryXXXXXXXXXXXX
Content-Disposition: form-data; name="offerCode"
MYCODE
----WebKitFormBoundaryXXXXXXXXXXXX
我只能添加从POSTMAN截取的HTTP生成的代码
我想向现有请求传递一个ID数组。
我尝试了几个变体从这里,改装-发送请求体作为数组或数字,如何发送PUT请求与改装字符串和数组列表的模型我需要使用URL编码,但他们没有工作。然后我尝试Android改装发送数组作为x-ww-form-urlencoded。
我在列表参数中添加了[]
,并在其类型中添加了list
:
@FormUrlEncoded
@POST("your_request/")
fun sendIds(
@Field("token") token: String,
@Field("city_id") cityId: Int?,
@Field("description") description: String,
@Field("ids[]") ids: List<Int>? // Add '[]' here.
): Deferred<YourResponse>
然后像往常一样称之为(与Kotlin合作):
api.sendIds("f0123abc", null, "description", listOf(1, 2, 3)).await()
请参阅是否可以发送带有Postman Chrome扩展名的数组?了解《邮递员》中的情况。
在改装2.0以执行如上所述的POST请求时,您应该像这样对您的参数使用请求体类型。
@Multipart
@POST("XXXX")
Call<PlanResponse> myPlans(@Part(Constants.ACTION_ID) RequestBody actionId, @Part(Constants.OFFER_CODE) RequestBody offerCode);
这里是如何从String获取请求体。
String somevalue = "somevalue";
RequestBody body = RequestBody.create(MediaType.parse("text/plain"), somevalue);
下面是使用请求主体的另一个解决方案:
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("param1", param1)
.addFormDataPart("param2", param2)
.build();
apiInterface.somePostMethod(requestBody).enqueue(
//onResponse onFailure methods
);
这是我的api接口POST方法
@POST("somePostMethod")
Call<ResponseBody> somePostMethod(@Body RequestBody body);
希望能有帮助。
我正在尝试获取请求中发送的确切的JSON。下面是我的代码: 但我只在日志中看到这一点:
编辑:由于OKHttp 2.0.x是,是
如果您不得不跟浏览器提交的表单数据打交道,视图函数里的代码将会很快变得 难以阅读。有不少的代码库被开发用来简化这个过程的操作。其中一个就是 WTForms , 这也是我们今天主要讨论的。如果您发现您自己陷入处理很多表单的境地,那您也许 应该尝试一下他。 要使用 WTForms ,您需要先将您的表单定义为类。我建议您将应用分割为多个模块 (大型应用) ,这样的话您仅需为表单添加一个独立的模块。 挖掘
我想从Dockerfile创建一个具有初始数据库及其表的MySQL容器。 我还有一个特定的etc/mysql/mysql。conf.d/mysqld。cnf文件(我可以在Dockerfile中简单地使用添加指令。) 我希望Dockerfile创建一个MySQL映像,其中包含一个名为DBNAME的数据库,并包含以下表格: 我已经在这里寻找解决问题的方法,但没有找到解决方法。
问题内容: 到目前为止,我已经使用纯JavaScript来验证表单,但是我需要在组合中添加mysqli查询。只有我对jquery和ajax不太了解。我可以做一个简单的登录表格,但这有点复杂。谁能给我有关如何添加jquery / ajax组件来验证这一点的任何指示: 问题答案: 您可以做的是发送$ .post像这样: 在你的 记得: 如果您要发布表单,请提交以添加到您的javascript函数中以手