我正在尝试从解析JSON数据的地方向url发送数据,我想知道如果我们从myjson.com创建随机json存储,或者我们必须维护自己的服务器进行编辑,我们可以在url中编辑json数据吗? json数据。这里我创建了一个随机的json存储,我正在从该url解析数据,我还想编辑url中的数据,这是我无法解决的问题。它无法正常工作。请帮助吗? 这是结构
[{“ name”:“ pavan”,“ hit”:true}]
这是mainactivity代码,fetchdata在其中执行后台操作
public class MainActivity extends AppCompatActivity {
Button click;
public static TextView data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
click=(Button)findViewById(R.id.button);
data=(TextView)findViewById(R.id.fetcheddata);
click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fetchdata process=new fetchdata();
process.execute();
}
});
}
}
这是fetchdata类,从该类中可以从url获取数据并在mainactivity的文本视图中显示
public class fetchdata extends AsyncTask<Void,Void,Void> {
String data="";
String dataparsed="";
String singleparsed="";
boolean flag=false;
@Override
protected Void doInBackground(Void... params) {
try {
URL url=new URL("https://api.myjson.com/bins/1854yb");
HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();
InputStream inputStream=httpURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String line="";
while (line!=null)
{
line=bufferedReader.readLine();
data=data+line;
}
JSONArray JA=new JSONArray(data);
for(int i=0;i<JA.length();i++)
{
JSONObject JO= (JSONObject) JA.get(i);
singleparsed="Name:"+JO.get("name")+"\n"+"Feed key:"+JO.get("hit");
dataparsed=dataparsed+singleparsed;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
MainActivity.data.setText(this.dataparsed);
JSONObject postData = new JSONObject();
try {
postData.put("name","sai");
postData.put("hit", false);
new senddata().execute("https://api.myjson.com/bins/1854yb", postData.toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
}
这是senddata到正在执行的fetchdata的postexecute中的url代码,并且url中什么都没有发生,请帮我从3天开始对此工作
public class senddata extends AsyncTask<String,Void, String> {
String data="";
String dataparsed="";
String singleparsed="";
boolean flag=false;
@Override
protected String doInBackground(String... params) {
String data = "";
HttpURLConnection httpURLConnection = null;
try {
httpURLConnection = (HttpURLConnection) new URL(params[0]).openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
wr.writeBytes("PostData=" + params[1]);
wr.flush();
wr.close();
InputStream in = httpURLConnection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(in);
int inputStreamData = inputStreamReader.read();
while (inputStreamData != -1) {
char current = (char) inputStreamData;
inputStreamData = inputStreamReader.read();
data += current;
}
dataparsed=data;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (httpURLConnection != null) {
httpURLConnection.disconnect();
}
}
return data;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Log.e("TAG", result);
}
}
答案 0 :(得分:0)
此api的网址后不接受任何参数。 这是一个get方法,Api url不是post方法。尝试在postman的post方法中运行它,它将给出错误。 如果您在get方法中运行,即使您在url之后添加一些内容,也会产生相同的输出:-“ https://api.myjson.com/bins/1854yb”
答案 1 :(得分:0)
我认为您在创建api时遇到myJson问题。如果您是android的初学者,也可以尝试Link for ready made Api for Android
他们创建了不同种类的Apis来理解json概念。
还获得有关PostMan Link for postman
的一些更新。