gpt4 book ai didi

java - 我无法从 REST API URL 获取 JSON 对象

转载 作者:行者123 更新时间:2023-12-02 10:23:19 25 4
gpt4 key购买 nike

所以我一直在尝试检索 JSON 文件,这些文件基本上是我数据库中的帖子。它们可以从我正在运行的 Django REST API 中获取。我可以访问该 URL 并查看网络中任何设备上的可用帖子。但是,我无法检索它们以便将它们发布到我的 Android 应用程序上。

我的 AsyncTaskpostExecute 中的日志不显示任何 JSON 对象,只是空的。

它不会在我的 logcat 中返回任何错误消息,所以我不确定问题是什么。

我正在尝试制作一个社交网络类型的原型(prototype),其中的帖子存储在我的数据库内的数据库中,并通过 API 获取它们。

我正在使用 AsyncTask 连接到我的 URL 并在那里进行处理

帖子.java

public class Posts extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_posts);

PostsDetails postDetailsHelper = new PostsDetails();

postsDoneBtn = (Button) findViewById(R.id.PostsDoneButton);

postDetailsHelper.callPostDetails("192.168.0.18:8000/api/");

postDetailsHelper.postDetailsCalled('n');

postsDoneBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Posts.this, MainActivity.class));

}
});
}

public class PostsDetails {

// calls the execute for AsyncTask
private void callPostDetails(String theurl){
PostsHelper = new WSAdapter.SendPostsRequest();
// sets if post details are called
postDetailsCalled('y');
// executes AsyncTask
PostsHelper.execute(theurl);
}

}

}

WSAdapter.java

public class WSAdapter extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

static public class SendPostsRequest extends AsyncTask<String, String, String> {

// Add a pre-execute thing
HttpURLConnection urlConnection;

@Override
protected String doInBackground(String... params) {

StringBuilder result = new StringBuilder();

try {
urlConnection = (HttpURLConnection) new URL(params[0]).openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();

InputStream in = new BufferedInputStream(urlConnection.getInputStream());

BufferedReader reader = new BufferedReader(new InputStreamReader(in));

String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}

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

return result.toString();
}

@Override
protected void onPostExecute(String result) {

// expecting a response code fro my server upon receiving the POST data
Log.e("TAG", result);

}
}

最佳答案

您需要将协议(protocol)方案添加到您的 URL:http://https:// 或您需要的任何其他协议(protocol)方案。
所以它应该看起来像这样:

postDetailsHelper.callPostDetails("http://192.168.0.18:8000/api/");

关于java - 我无法从 REST API URL 获取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54163271/

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