gpt4 book ai didi

android - 如何从 android studio 应用程序将 json 发送到 asp.net api Controller ?

转载 作者:行者123 更新时间:2023-11-30 01:53:33 25 4
gpt4 key购买 nike

我写了一个应用程序,用户必须在其中用信息填充一些文本字段像名字、年龄...当他点击一个按钮时,数据被发送到我的 api Controller ,其中 put 方法将数据保存在数据库中。

这是一种工作方式,但我不知道如何将 json 发送到我的 Controller 。(我研究了几天但没有任何效果)所以我现在做的是写一个 url 符合我的数据的字符串所以在我的 Controller 中我读出了我需要知道的字符串。这是一个非常糟糕的解决方案!(我不能做空格或斜杠等等......)

为了发送我的 UserData,我构建了一个 AsyncTask(当我没有构建一个 Exeption 时)

class SendUserTask extends AsyncTask<String, Void, String>{
public AsyncResponse delegate = null;
User user;
@TargetApi(Build.VERSION_CODES.KITKAT)
protected String doInBackground(String... urls) {
try {

String r = sendUser("name" + user.getName() + "street" + user.getStreet());

} catch (Exception e) {
e.printStackTrace();
}
return "";
}

public void setUser(User u){user = u;}

public static String sendUser(String userData) throws Exception {

URL url = new URL("http://my-address:port/api/users/"+ userData);
HttpURLConnection c =(HttpURLConnection) url.openConnection();
c.setRequestMethod("PUT");
BufferedReader in = new BufferedReader(new InputStreamReader(
c.getInputStream()));
String inputLine;
String result = "";
while ((inputLine = in.readLine()) != null)
result = inputLine;
in.close();
return result;
}

}

当我只想发送一个 id 或获取一些东西时,这个方法工作得很好!

我的 Controller 是默认的api Controller 这是我的放置方法:

     public String Put(string id, [FromBody]string value){
//stuff
}

请问有人能帮忙吗!?!

最佳答案

尝试考虑this邮政。它描述了如何使用改造将对象或实体发送到服务器。我也找到了topic描述了如何在服务器端检索 json 数据。

更新

安卓端

  1. 尝试创建一个简单的实体,其中包含您希望在服务器上发送的所有数据
  2. 创建将数据发送到服务器的简单接口(interface)。接下来考虑:

     public interface UserApi {
    @PUT("/api/users/")
    Call<Object> sendData(@Body FooRequest body);
    }
  3. 获取适配器端发送请求

     Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("http://my-address:port")
    .build();

    UserApi service = retrofit.create(UserApi.class)
    service.sendData(new FooRequest());

服务器端

  1. 尝试像这样创建 apicontroller(我不确定)

     public class UtilityController : ApiController
    {
    [HttpPut]
    public string Put(FooRequest fooRequest)
    {
    return "bla";
    }
    }

希望对您有所帮助!

here是我的测试项目

祝你好运

关于android - 如何从 android studio 应用程序将 json 发送到 asp.net api Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32626705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com