首页 > 其他分享 >post请求方式 - 抖音生活服务 使用restTemplate而不使用httpClient

post请求方式 - 抖音生活服务 使用restTemplate而不使用httpClient

时间:2023-06-05 22:25:23浏览次数:43  
标签:String url restTemplate json 抖音 result new post logger

public static String doPostForJson(String url, String json,String byteAuthorization) {
        RestTemplate restTemplate = new RestTemplate();

        logger.info("restTemplate invoke post method. url:[{}], json:[{}]", url, json);
        long startTime = System.currentTimeMillis();
        String result = "";

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("Byte-Authorization",byteAuthorization);

        HttpEntity<String> request = new HttpEntity<>(json, headers);
        result = restTemplate.postForEntity(url,request,String.class).getBody();


        logger.info("restTemplate invoke [{}] consume time is,[{}] ms.", url, System.currentTimeMillis() - startTime);
        logger.info("restTemplate invoke post method. result:[{}]", result);
        return result;
    }


    /**
     * 通过该方式,对方未正确接收到参数
     * https://blog.csdn.net/zy_281870667/article/details/87723177
     * @param url
     * @param json
     * @param byteAuthorization
     * @return
     */
    public static String doPostForJsonOld(String url, String json,String byteAuthorization) {
        logger.info("invoke post method. url:[{}], json:[{}]", url, json);
        long startTime = System.currentTimeMillis();
        String result = "";
        HttpClient httpClient = wrapClient(url);

        StringEntity se = new StringEntity(json, "UTF-8");
        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
//        se.setContentType(new BasicHeader("Accept", "application/json"));
        /**
         * 数据格式
         * Byte-Authorization: SHA256-RSA2048 appid="ttxxx",nonce_str="DC10180A100073E70A48F195DA2AF2E6",timestamp="1623934869",key_version="1",signature=""'
         */
        se.setContentType(new BasicHeader("Byte-Authorization", byteAuthorization));
        se.setContentEncoding("UTF-8");

        // 创建HttpPost
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(se);
        // 执行POST请求
        try {
            HttpResponse response = httpClient.execute(httpPost);
            // 若状态码为200 ok
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                // 取出回应字串
                result = EntityUtils.toString(response.getEntity(), "UTF-8");
            }
        } catch (Exception e) {
            logger.error("Calling douyin payment interface is abnormal >>> url:[{}], json:[{}]",
                    url, json, e);
        }

        logger.info("invoke [{}] consume time is,[{}] ms.", url, System.currentTimeMillis() - startTime);
        logger.info("invoke post method. result:[{}]", result);
        return result;
    }

 

标签:String,url,restTemplate,json,抖音,result,new,post,logger
From: https://www.cnblogs.com/oktokeep/p/17459066.html

相关文章

  • PHP 实现抖音去水印
    <?php$url=$_GET['url'];//获取视频url$url=get_redirect_url($url);//获取视频ID$str=dirname($url);$id=substr($str,strripos($str,'video')+6);//调用抖音官方API$str=file_get_contents('https://www.douyin.com/web/api/v2/aweme/itemi......
  • python requests请post接口200,打印提示Unexpected character encountered while parsi
    pythonrequests发起httppost请求,带参数,带请求头,代码设置检查没有问题runpy文件提示Unexpectedcharacterencounteredwhileparsingvalue:p.Path,问题一:body请求形式未进行json格式data=json.dumps(body)dumps的功能是将字典类型转换未json格式的字符串类型。......
  • 浏览器请求转换成Postman和postman请求转Java/JS.等后端代码
     unirest为例:<!--与postman非常友好的RPC框架--><dependency><groupId>com.konghq</groupId><artifactId>unirest-java</artifactId><version>3.5.00</version></depend......
  • post和get
    都是前端向后端发送请求,后端在处理接收到的数据OST和GET是HTTP协议中最常见的两种请求方法,它们有以下区别:数据传输方式:GET:通过URL的查询字符串传递参数,参数会暴露在URL中,例如:http://example.com/path?param1=value1&param2=value2POST:通过请求的消息体传递参数,参数不会暴露......
  • PostgreSQL中使用动态SQL-实现自动按时间创建表分区
    PostgreSQL中通过继承,可以支持基本的表分区功能,比如按时间,每月创建一个表分区,数据记录到对应分区中。按照官方文档的操作,创建子表和index、修改trigger等工作都必须DBA定期去手动执行,不能实现自动化,非常不方便。尝试着通过在plpgsql代码中使用动态SQL,将大表分区的运维操作实现......
  • 部署postgresql数据库
    当使用Docker部署PostgreSQL时,可以按照以下步骤进行操作:首先,确保已经安装了Docker并启动了Docker服务。打开终端或命令行界面,运行以下命令以拉取最新的PostgreSQLDocker镜像:dockerpullpostgres容器的启动命令将需要指定一些参数,如容器名称、端口映射、密码等。以下是一个示例命......
  • postgresql 集群和同步以及企业解决方案
    pgpool-II入门教程[url]http://www.pgpool.net/docs/latest/tutorial-zh_cn.html[/url],集群教程[size=medium][color=red][b]方案1:pgpool[/b][/color][/size]pgpool:设置简单,实现SharedNothing的双机写入同步,及查询负载均衡。也可结合Slony实现双机异步复制,提高写数据性能。......
  • Docker安装Java, Apache, Redis, Tomcat, Postgresql, SSH
    [color=red]centos安装Supervisor[/color][url]http://www.alphadevx.com/a/455-Installing-Supervisor-and-Superlance-on-CentOS[/url]网络设定[b][color=darkblue]#创建网络brctladdbrbr0iplinksetdevbr0upipaddradd192.168.2.1/24devbr0#创建容器#......
  • PostgreSQL In BigData 大数据Postgresql
    1.BigSQL(整合了pg和hadoop的一个开源项目)[url]http://www.bigsql.org/se/[/url]2.ClouderaManagerDB[url]http://www.cloudera.com/content/cloudera/en/home.html[/url]3.Hadoopdb(耶鲁大学的一个开源项目)SQLtoMapReducetoSQL(SMS)Plann......
  • Spring RestTemplate 调用天气预报接口乱码的解决
    SpringRestTemplate调用天气预报接口可能遇到中文乱码的问题,解决思路如下。问题出现我们在网上找了一个免费的天气预报接口http://wthrcdn.etouch.cn/weather_mini?citykey=101280601。我们希望调用该接口,并将返回的数据解析为JSON格式。核心业务逻辑如下:privateWeatherRespo......