首页 > 其他分享 >12.12每日总结

12.12每日总结

时间:2023-12-12 22:36:10浏览次数:30  
标签:总结 body 翻译 return String 每日 static 12.12 new

今天继续了昨天未完成的软件案例分析大作业

import okhttp3.*;
import org.json.JSONArray;
import org.json.JSONObject;

import java.io.IOException;
import java.util.Scanner;

class Sample {
    public static final String API_KEY = "h1Hn3oHAWMObDjjFGUY9a2sP";
    public static final String SECRET_KEY = "B0cVpGwGb08h8fqochevBsgOFGi6G4oA";
    static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();

    public static void main(String[] args) throws IOException {
        // 获取用户输入的要翻译的文本
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要翻译的文本:");
        String textToTranslate = scanner.nextLine();

        // 获取用户选择的目标语言
        String targetLanguage = getUserTargetLanguage();

        // 构建请求体的 JSON 对象
        JSONObject requestBodyJson = new JSONObject();
        requestBodyJson.put("from", "auto");  // 源语言自动检测
        requestBodyJson.put("to", targetLanguage);  // 目标语言根据用户选择
        requestBodyJson.put("q", textToTranslate);  // 添加要翻译的文本

        // 创建请求体
        MediaType mediaType = MediaType.parse("application/json");
        RequestBody body = RequestBody.create(mediaType, requestBodyJson.toString());

        // 创建HTTP请求
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=" + getAccessToken())
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
                .addHeader("Accept", "application/json")
                .build();

        // 发起请求并获取响应
        Response response = HTTP_CLIENT.newCall(request).execute();

        // 解析翻译结果
        String translatedText = parseTranslationResult(response.body().string());
        System.out.println("翻译结果:" + translatedText);
    }

    /**
     * 解析翻译结果
     *
     * @param responseBody 响应体字符串
     * @return 翻译结果
     */
    static String parseTranslationResult(String responseBody) {
        JSONObject responseJson = new JSONObject(responseBody);
        JSONArray transResultArray = responseJson.getJSONObject("result").getJSONArray("trans_result");

        // 假设只翻译一段文本,取第一个翻译结果
        if (transResultArray.length() > 0) {
            return transResultArray.getJSONObject(0).getString("dst");
        } else {
            return "未能获取翻译结果";
        }
    }

    /**
     * 从用户的AK,SK生成鉴权签名(Access Token)
     *
     * @return 鉴权签名(Access Token)
     * @throws IOException IO异常
     */
    static String getAccessToken() throws IOException {
        // 创建请求体
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
                + "&client_secret=" + SECRET_KEY);

        // 创建HTTP请求
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/oauth/2.0/token")
                .method("POST", body)
                .addHeader("Content-Type", "application/x-www-form-urlencoded")
                .build();

        // 发起请求并获取响应,解析JSON获取Access Token
        Response response = HTTP_CLIENT.newCall(request).execute();
        return new JSONObject(response.body().string()).getString("access_token");
    }

    /**
     * 获取用户选择的目标语言
     *
     * @return 目标语言代码
     */
    static String getUserTargetLanguage() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请选择目标语言(输入 'zh' 翻译为中文,输入 'en' 翻译为英文):");
        return scanner.nextLine();
    }
}

  

标签:总结,body,翻译,return,String,每日,static,12.12,new
From: https://www.cnblogs.com/louwangshayu/p/17897996.html

相关文章

  • 每日总结12.12
    JFinal框架功能总结介绍: JFinal是一款基于Java的轻量级Web开发框架,它主要用于简化和加速JavaWeb应用程序的开发。以下是对JFinal框架功能的总结介绍: MVC架构: JFinal采用了经典的MVC(Model-View-Controller)架构,将应用程序划分为模型、视图和控制器三个部分,使代码结构更清......
  • 2023.12.12——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.c#明日计划:学习......
  • 12.12闲话
    推歌梨花香缠着衣角掠过熙攘复悄入红帘深帐听枝头黄鹂逗趣儿细风绕指淌坐船舫兰桨拨开雾霭迷茫不觉已一日过半过眼的葱郁风光悉数泛了黄褪尽温度的风无言牵引中便清晰了在此的眉目暮色的消融隐约了晦朔葱茏在这老街回眸烟云中追溯我是谁只消暮雨点滴便足以粉......
  • Java 8 Stream 流的常用方法总结
    Java8Stream流的常用方法总结Java8引入了一个新的API:StreamAPI,它允许我们以声明式的方式处理数据集合。StreamAPI提供了一系列强大的方法,可以帮助我们更简洁、高效地处理数据。本文将总结Java8Stream流的常用方法,并提供相应的代码示例。1.创建Stream首先,我们需要了......
  • 12/12每日总结
    最短路径BFS求无权图的单源最短路径简介直接进行广度优先遍历使用两个数组,一个记录最短路径值,一个记录到这个顶点的直接前驱只能用无权图迪杰斯特拉算法简介dijkstra算法是一种一步一步找出最短路径的方法,核心思路就是从初始点开始,一步一步从已确定路径中选取最短的路径作为新的最......
  • 数仓项目总结
    数仓项目总结一、数据采集数据从哪里来的?一般在实际开发中,是业务开发端在业务系统程序中,植入一些收集事件数据的SDK(工具代码),进行各种事件数据的收集,埋点数据可以植入到业务系统的前端程序或者后端程序中。我们作为大数据开发,只需要提出数据埋点需求,对具体实现技术仅作基本了......
  • Solution Set 2023.12.12
    ABC332GNotTooManyBalls可以转化为最大流模型,设节点\(x_i\)代表第\(i\)种球,\(y_j\)代表第\(j\)个盒子。考虑如下建边方案:\(S\rightarrowx_i\),容量为\(A_i\)\(x_i\rightarrowy_j\),容量为\(i\timesk\)\(y_j\rightarrowT\),容量为\(B_j\)可以发现该网络......
  • 每日导数5
    找出相同结构设函数\(f\left(x\right)=\mathrm{e}^x-1-ax\).\((1)\)若\(x\geq0\),\(f\left(x\right)\geq0\),求\(a\)的取值范围;\((2)\)若\(x>0\)且\(m\geq1\),证明:\(f\left(x\right)\geq\dfrac{x^2}{\ln\left(x+m\right)}-ax\).(1)因为\(f\left(x\ri......
  • 关于Rust的简单总结(一)
    0.前言这是一个关于Rust的简单总结。(待续)资料学习网址:学习Rust-Rust程序设计语言(rust-lang.org)官网:Rust程序设计语言(rust-lang.org)Rust介绍[[Rust]]程序设计语言的本质实际在于 赋能(empowerment):无论你现在编写的是何种代码,Rust能让你在更为广泛的编程......
  • 项目经理的年终总结没写好,一年全白干
    项目经理年终吐槽大会:又到年底了,办公室的项目经理们好不容易能聚在一起,大家在交流工作时,对这一年的工作状态简要吐槽了几句。每一句都堪称经典,但无不透露出各种心酸。a)     项目经理小王:感情状态——继续单身,根本没空谈恋爱;身材体重——过劳肥。b)     项目经理小刘:每......