如何使用Retrofit 2将嵌套数组发送到服务器

时间:2017-08-30 06:50:53

标签: android

我正在尝试使用Retrofit 2向服务器发送请求,我的一个参数应该是这样的:

  

[[ “配料”, “amountInt”, “单元”]]

内部列表是动态的,它可以是其中的很多!如下所示

  

[[ “Ingredient1”, “1”, “千”],[ “Ingredient2”, “2”, “千”]]

我尝试使用List<String[]>JSONArray以及List<List<String>>制作此数组 但它们都不起作用,我从服务器上得到了超时 我得到失眠和邮差的请求,我得到了成功的回复

这是我的Retrofit Interface

@POST("my server link")
Call<MyResponse> addFood(
        @Header("token") String token,
        @Part("name") RequestBody getName,
        @Part("time") RequestBody getTime,
        @Part("description") RequestBody getDescription,
        @Part("hardness") RequestBody getHardness,
        @Part("group") RequestBody getGroup,
        @Part("numberOfPeople") RequestBody getNumberOfPeople,
        @Part("tags") RequestBody getTags,
        @Part("source") RequestBody getSource,
        @Part("ings")List<String[]> ings);

这就是我创作的方式:

String[] getIngs=new String[3];
ArrayList<String[]> ingsFinal= new ArrayList<>();
getIngs[0] = getIngredient;
getIngs[1] = getAmount;
getIngs[2] = getUnit;
ingsFinal.add(getIngs);

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

我从服务器

超时

当服务器收到错误的参数时,它应该会产生一些错误。 超时取决于互联网连接或不正确的网址。

您应该检查using (NpgsqlConnection connection = new NpgsqlConnection(< connectionString >)) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); connection.Open(); NpgsqlCommand cmd = new NpgsqlCommand(< name of your SP >, connection); cmd.CommandType = CommandType.StoredProcedure; var param = cmd.CreateParameter(); param.ParameterName = < exact parameterName you used in your SP>; param.DbType = System.Data.DbType.AnsiString; param.Value = < parameter value >; cmd.Parameters.Add(param); NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(cmd); adapter.Fill(ds); dt = ds.Tables[0]; } Retrofit.Builder().baseUrl()网址。 @Post() baseUrl = "http://url.url/"