使用Retrofit发送POST请求提交JSON数据

Retrofit官网:https://square.github.io/retrofit/

示例如下

HttpService.java

import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;

public interface HttpService {
    String BASE_URL = "http://47.99.62.153:7076/";
    @Headers("Content-Type: application/json")
    @POST("xinyan/resultCallBack")
    Call<ResultCallbackReply> getResultCallback(@Body RequestBody body);
}

Entry.java

import okhttp3.MediaType;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

import java.util.logging.Level;
import java.util.logging.Logger;

public class Entry {
    private static final Logger LOGGER = Logger.getLogger(Entry.class.getName());

    public static void main(String[] args) {
        HttpService service = new Retrofit.Builder().baseUrl(HttpService.BASE_URL).addConverterFactory(GsonConverterFactory.create()).build().create(HttpService.class);
        String body = "{\"token\": \"This is a token!\"}";
        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), body);
        service.getResultCallback(requestBody).enqueue(new Callback<ResultCallbackReply>() {
            @Override
            public void onResponse(Call<ResultCallbackReply> call, Response<ResultCallbackReply> response) {
                ResultCallbackReply reply = response.body();
                LOGGER.log(Level.INFO, reply.getMsg());
            }

            @Override
            public void onFailure(Call<ResultCallbackReply> call, Throwable t) {
                LOGGER.log(Level.SEVERE, null, t);
            }
        });
    }
}

build.gradle

dependencies {
    ...
    implementation ‘com.squareup.retrofit2:retrofit:2.5.0‘
    implementation ‘com.squareup.retrofit2:converter-gson:2.5.0‘
}

使用@Headers("Content-Type: application/json")设置Content-Type为application/json

RequestBody指示了请求体,RequestBody.create(MediaType contentType, String content)创建RequestBody对象

原文地址:https://www.cnblogs.com/buyishi/p/10606073.html

时间: 2024-11-05 19:53:24

使用Retrofit发送POST请求提交JSON数据的相关文章

Android利用异步任务AsyncTask发送post请求获取json数据

AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. 使用的优点: l  简单,快捷 l  过程可控 使用的缺点: l  在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来. 2 )Handler异步实现的原理和适用的优缺点 AsyncTask介绍 Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理.

前端ajax用post方式提交json数据给后端时,网络报错 415

项目框架:spring+springmvc+mybatis 问题描述:前端ajax用post方式提交json数据给后端时,网络报错 415 前端异常信息:Failed to load resource: the server responded with a status of 415 (Unsupported Media Type) 后端异常信息:无 报错原因:缺少jackson包 类似问题注意点: springmvc添加配置.注解: pom.xml添加jackson包引用: Ajax请求时没

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

C# 用POST提交json数据

public void GetResponse(string url, string json) { Encoding encoding = Encoding.UTF8; byte[] data = encoding.GetBytes(json); //此处为为http请求url var uri = new Uri(url); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); //用此方法可以添加标准或非标准http

[Android]HttpPost之post请求传递Json数据

懒得打字 /** * 发送post请求传递Json */ public void jieXi() { new Thread(new Runnable() { public void run() { // Json中的引号必须加 \ 转义 String getLightJson = "{\"object\":\"light\",\"action\":\"get\"}"; String jsonParent =

异步请求(删除json数据)

异步请求(删除json数据) 删除数据库信息, 同时页面对应的样式也随之删除 Demo: 删除雇员信息1.在控制层定义删除的方法 //删除数据 public void jsonRemove(HttpServletRequest req,HttpServletResponse resp) throws Exception { //获取要删除的雇员的编号 Integer empno = Integer.valueOf(req.getParameter("id")); //调用业务层的删除方

ajax提交json数据到后端C#解析

本文链接:https://blog.csdn.net/qq_22103321/article/details/78015920 前端提交json数据 $.ajax({ type: "post", url: url,//请求地址 data: JSON.stringify(data),//json数据,如{"key1":"value1","key2":"value2"} dataType: "json

swift http请求返回json数据并解析

1 AppDelegate.swift // // AppDelegate.swift // QQDemo // // Created by 赵超 on 14-6-21. // Copyright (c) 2014年 赵超. All rights reserved. // import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? fun

【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MVC与json参考文章:[spring学习笔记-mvc-3]返回json数据-方式1  和 [spring学习笔记-mvc-4]返回json数据-方式2. 使用到的技术主要如下: Ajax:使用JQuery 提供的ajax:==>需要引入jquery.min.js文件: Spring MVC: Jso