All posts by 龙生
IDEA——》解决Command line is too long
1)找到项目下的.idea/workspace.xml
2)打开文件,找到标签:PropertiesComponent
3)添加一行属性:
其它属性代码不要修改,只添加下面一行属性代码
ChatGPT用Java写的读写PDF的代码
用的Apache PDFBox库 读:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
import java.io.File; import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; public class PDFReader { public static void main(String[] args) { try { // 加载PDF文件 File file = new File("example.pdf"); PDDocument document = PDDocument.load(file); // 创建PDFTextStripper对象 PDFTextStripper pdfStripper = new PDFTextStripper(); // 从第一页到最后一页提取文本内容 for (int i = 1; i <= document.getNumberOfPages(); i++) { pdfStripper.setStartPage(i); pdfStripper.setEndPage(i); String text = pdfStripper.getText(document); System.out.println("Page " + i + ":"); System.out.println(text); } // 关闭PDF文档 document.close(); } catch (IOException e) { e.printStackTrace(); } } } |
写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import java.io.IOException; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; public class PDFGenerator { public static void main(String[] args) { try { // 创建文档对象 PDDocument document = new PDDocument(); // 创建页面 PDPage page = new PDPage(); // 将页面添加到文档 document.addPage(page); // 创建内容流以便向页面添加内容 PDPageContentStream contentStream = new PDPageContentStream(document, page); // 设置字体和字体大小 contentStream.setFont(PDType1Font.HELVETICA, 12); // 在页面上写入文本 contentStream.beginText(); contentStream.newLineAtOffset(100, 700); contentStream.showText("Hello, World!"); contentStream.endText(); // 关闭内容流 contentStream.close(); // 保存文档 document.save("GeneratedPDF.pdf"); // 关闭文档 document.close(); System.out.println("PDF文件已生成成功!"); } catch (IOException e) { e.printStackTrace(); } } } |
View Details
微信小程序获取当前页面的url和参数
页面跳转添加参数
1 2 3 |
wx.navigateTo({ url: `../deeddetail/deeddetail?id=${e.currentTarget.dataset.id}`, }) |
接收options 1. 在onLoad里接收参数
1 2 3 |
onLoad: function (options) { console.log(options.id) //options.参数名就可以取到 } |
2.其他位置获取参数及url可以写成工具函数放到utils中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
/*获取当前页url*/ const getCurrentPageUrl=()=>{ let pages = getCurrentPages() //获取加载的页面 let currentPage = pages[pages.length-1] //获取当前页面的对象 let url = currentPage.route //当前页面url return url } /*获取当前页参数*/ const getCurrentPageParam=()=>{ let pages = getCurrentPages() //获取加载的页面 let currentPage = pages[pages.length-1] //获取当前页面的对象 let options = currentPage.options //如果要获取url中所带的参数可以查看options return options } module.exports = { getCurrentPageUrl, getCurrentPageParam } |
3.使用
1 2 3 4 |
import utils from '../../../utils/util' let url=utils.getCurrentPageUrl() let options=utils.getCurrentPageParam() |
from:https://blog.csdn.net/m0_55969466/article/details/122167424
View Detailsspring-cloud-oauth2升级版本遇到的认证报bad credentials,Encoded password does not look likebcrypt的问题
记录一下今天工作的时候升级一个认证服务遇到的小问题,虽然最后解决只有一行代码,却花了差不多3个小时。
初始版本为
springboot 1.5.9.RELEASE
springcloud Dalston.SR1
升级为
springboot 2.0.3.RELEASE
springcloude finchley.RELEASE
升级改造完成之后,服务运行正常,但是请求认证的时候报错:
http://localhost:9000/oauth/token?grant_type=password&scope=app&client_id=client_2&client_secret=123456&username=user&password=123456
回复
{
“error”: “invalid_client”,
“error_description”: “Bad client credentials”
}
OAuth2.0系列五:OAuth2.0客户端凭证
客户端通过客户端的id和secret申请授权,这种方式给出的令牌,是针对第三方应用的,而不是针对用户的,即有可能多个用户共享同一个令牌。
View DetailsOAuth2.0四种授权模式及实战
首先我们得了解什么是Oauth2.0,简单来说Oauth2.0它是一个授权协议。我们可能会听说过,使用Oauth2.0来实现单点登录SSO,以及第三方登录。那个什么是授权?
举个通俗易懂的例子,就是第三方人员A要想进入B公司的大厦进行业务交流的时候,因为A并不是B公司的员工,出于安全的缘故,所以他不能够自由的出入B公司的大厦。那个A到了B公司前台的时候,A得去前台和B公司前台工作人员说明来意,并且出示邀请(访问)证明,此时B公司前台工作人员就会给你一张临时工牌让你进入大厦。
在这个例子当中,A没有工牌所以是无法进入B公司大厦里进行业务交流,B公司前台给A一张临时工牌,这个操作就相当于授权。
总的来说,OAuth 2.0 这种授权协议,就是保证第三方(软件)只有在获得授权之后,才可以进一步访问授权者的数据。
View DetailsOAuth 2.0 客户端,第 2 部分: 客户端凭据授权
OAuth 是一个开放的授权标准,允许客户端代表一个资源所有者获得对受保护服务器资源的访问权限。资源所有者可以是另一个客户端或最终用户。OAuth 还可以帮助最终用户将对其服务器资源的访问权限授权给第三方,而不必共享其凭据,比如用户名和密码。本系列文章遵从 RFC6749 中列出的 OAuth 2.0 授权框架。可以在 Internet Engineering Task Force 的网站上找到 RFC 6749 中列出的完整 OAuth 2.0 授权框架(请参阅 )。
View Details【Java】RestTemplate设置header
开发中使用RestTemplate来进行访问,设置请求头的方法: 方法一:单独设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class TestRestTemplate { @Autowired private RestTemplate restTemplate; public void postObject(String id){ String url="http://www.baidu.com"; MultiValueMap<String, String> map = new LinkedMultiValueMap<>(); map.add("id",id); HttpHeaders header = new HttpHeaders(); // 需求需要传参为form-data格式 header.setContentType(MediaType.MULTIPART_FORM_DATA); HttpEntity<MultiValueMap<String, String>> httpEntity = new HttpEntity<>(map, header); JSONObject response = restTemplate.postForObject(url, httpEntity, JSONObject.class); } } |
方法二:公共设置,使用interceptor拦截器设置 1.添加拦截器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class HeaderRequestInterceptor implements ClientHttpRequestInterceptor { private final String headerName; private final String headerValue; public HeaderRequestInterceptor(String headerName, String headerValue) { this.headerName = headerName; this.headerValue = headerValue; } @Override public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { request.getHeaders().set(headerName, headerValue); return execution.execute(request, body); } |
2.配置RestTemplate Bean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
@Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate() { List<ClientHttpRequestInterceptor> interceptors = new ArrayList<>(); interceptors.add(new HeaderRequestInterceptor("token", "123")); RestTemplate restTemplate = new RestTemplate(); restTemplate.setInterceptors(interceptors); return restTemplate; } } |
3.使用RestTemplate Bean
1 2 |
@Autowired private RestTemplate restTemplate; |
from:https://www.cnblogs.com/z-Z-/p/15932021.html
View Details80端口被占用的两种解决方案 – 超详细(已解决)
net stop http
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
Start 设置为0