parent
2ced9cf894
commit
000bc715a5
@ -0,0 +1,37 @@ |
|||||||
|
package com.gitee.sop.storyweb.controller; |
||||||
|
|
||||||
|
import com.gitee.sop.servercommon.annotation.ApiMapping; |
||||||
|
import com.gitee.sop.storyweb.controller.param.StoryParam; |
||||||
|
import org.apache.commons.io.FileUtils; |
||||||
|
import org.springframework.core.io.ClassPathResource; |
||||||
|
import org.springframework.http.HttpHeaders; |
||||||
|
import org.springframework.http.HttpStatus; |
||||||
|
import org.springframework.http.MediaType; |
||||||
|
import org.springframework.http.ResponseEntity; |
||||||
|
import org.springframework.stereotype.Controller; |
||||||
|
|
||||||
|
import java.io.File; |
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
/** |
||||||
|
* 演示文件下载 |
||||||
|
* |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
@Controller |
||||||
|
public class DownloadController { |
||||||
|
|
||||||
|
@ApiMapping(value = "story.download") |
||||||
|
public ResponseEntity<byte[]> export(StoryParam param) throws IOException { |
||||||
|
|
||||||
|
HttpHeaders headers = new HttpHeaders(); |
||||||
|
// 假设下载classpath下的application.properties文件
|
||||||
|
ClassPathResource resource = new ClassPathResource("/application.properties"); |
||||||
|
File file = resource.getFile(); |
||||||
|
|
||||||
|
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); |
||||||
|
headers.setContentDispositionFormData("attachment", file.getName()); |
||||||
|
|
||||||
|
return new ResponseEntity<>(FileUtils.readFileToByteArray(file), headers, HttpStatus.OK); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,67 @@ |
|||||||
|
package com.gitee.sop.test; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.gitee.sop.test.alipay.AlipayApiException; |
||||||
|
import com.gitee.sop.test.alipay.AlipaySignature; |
||||||
|
import org.apache.commons.io.IOUtils; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.nio.charset.StandardCharsets; |
||||||
|
import java.text.SimpleDateFormat; |
||||||
|
import java.util.Date; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* 文件下载 |
||||||
|
* @author tanghc |
||||||
|
*/ |
||||||
|
public class DownloadTest extends TestBase{ |
||||||
|
|
||||||
|
String url = "http://localhost:8081/api"; // zuul
|
||||||
|
String appId = "2019032617262200001"; |
||||||
|
// 支付宝私钥
|
||||||
|
String privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCXJv1pQFqWNA/++OYEV7WYXwexZK/J8LY1OWlP9X0T6wHFOvxNKRvMkJ5544SbgsJpVcvRDPrcxmhPbi/sAhdO4x2PiPKIz9Yni2OtYCCeaiE056B+e1O2jXoLeXbfi9fPivJZkxH/tb4xfLkH3bA8ZAQnQsoXA0SguykMRZntF0TndUfvDrLqwhlR8r5iRdZLB6F8o8qXH6UPDfNEnf/K8wX5T4EB1b8x8QJ7Ua4GcIUqeUxGHdQpzNbJdaQvoi06lgccmL+PHzminkFYON7alj1CjDN833j7QMHdPtS9l7B67fOU/p2LAAkPMtoVBfxQt9aFj7B8rEhGCz02iJIBAgMBAAECggEARqOuIpY0v6WtJBfmR3lGIOOokLrhfJrGTLF8CiZMQha+SRJ7/wOLPlsH9SbjPlopyViTXCuYwbzn2tdABigkBHYXxpDV6CJZjzmRZ+FY3S/0POlTFElGojYUJ3CooWiVfyUMhdg5vSuOq0oCny53woFrf32zPHYGiKdvU5Djku1onbDU0Lw8w+5tguuEZ76kZ/lUcccGy5978FFmYpzY/65RHCpvLiLqYyWTtaNT1aQ/9pw4jX9HO9NfdJ9gYFK8r/2f36ZE4hxluAfeOXQfRC/WhPmiw/ReUhxPznG/WgKaa/OaRtAx3inbQ+JuCND7uuKeRe4osP2jLPHPP6AUwQKBgQDUNu3BkLoKaimjGOjCTAwtp71g1oo+k5/uEInAo7lyEwpV0EuUMwLA/HCqUgR4K9pyYV+Oyb8d6f0+Hz0BMD92I2pqlXrD7xV2WzDvyXM3s63NvorRooKcyfd9i6ccMjAyTR2qfLkxv0hlbBbsPHz4BbU63xhTJp3Ghi0/ey/1HQKBgQC2VsgqC6ykfSidZUNLmQZe3J0p/Qf9VLkfrQ+xaHapOs6AzDU2H2osuysqXTLJHsGfrwVaTs00ER2z8ljTJPBUtNtOLrwNRlvgdnzyVAKHfOgDBGwJgiwpeE9voB1oAV/mXqSaUWNnuwlOIhvQEBwekqNyWvhLqC7nCAIhj3yvNQKBgQCqYbeec56LAhWP903Zwcj9VvG7sESqXUhIkUqoOkuIBTWFFIm54QLTA1tJxDQGb98heoCIWf5x/A3xNI98RsqNBX5JON6qNWjb7/dobitti3t99v/ptDp9u8JTMC7penoryLKK0Ty3bkan95Kn9SC42YxaSghzqkt+uvfVQgiNGQKBgGxU6P2aDAt6VNwWosHSe+d2WWXt8IZBhO9d6dn0f7ORvcjmCqNKTNGgrkewMZEuVcliueJquR47IROdY8qmwqcBAN7Vg2K7r7CPlTKAWTRYMJxCT1Hi5gwJb+CZF3+IeYqsJk2NF2s0w5WJTE70k1BSvQsfIzAIDz2yE1oPHvwVAoGAA6e+xQkVH4fMEph55RJIZ5goI4Y76BSvt2N5OKZKd4HtaV+eIhM3SDsVYRLIm9ZquJHMiZQGyUGnsvrKL6AAVNK7eQZCRDk9KQz+0GKOGqku0nOZjUbAu6A2/vtXAaAuFSFx1rUQVVjFulLexkXR3KcztL1Qu2k5pB6Si0K/uwQ="; |
||||||
|
|
||||||
|
|
||||||
|
public void testDownload() throws AlipayApiException, IOException { |
||||||
|
// 公共请求参数
|
||||||
|
Map<String, String> params = new HashMap<String, String>(); |
||||||
|
params.put("app_id", appId); |
||||||
|
params.put("method", "story.download"); |
||||||
|
params.put("format", "json"); |
||||||
|
params.put("charset", "utf-8"); |
||||||
|
params.put("sign_type", "RSA2"); |
||||||
|
params.put("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); |
||||||
|
params.put("version", "1.0"); |
||||||
|
|
||||||
|
// 业务参数
|
||||||
|
Map<String, String> bizContent = new HashMap<>(); |
||||||
|
bizContent.put("id", "1"); |
||||||
|
bizContent.put("name", "葫芦娃"); |
||||||
|
|
||||||
|
params.put("biz_content", JSON.toJSONString(bizContent)); |
||||||
|
|
||||||
|
System.out.println("----------- 请求信息 -----------"); |
||||||
|
System.out.println("请求参数:" + buildParamQuery(params)); |
||||||
|
System.out.println("商户秘钥:" + privateKey); |
||||||
|
String content = AlipaySignature.getSignContent(params); |
||||||
|
System.out.println("待签名内容:" + content); |
||||||
|
String sign = AlipaySignature.rsa256Sign(content, privateKey, "utf-8"); |
||||||
|
System.out.println("签名(sign):" + sign); |
||||||
|
|
||||||
|
params.put("sign", sign); |
||||||
|
|
||||||
|
System.out.println("----------- 返回结果 -----------"); |
||||||
|
InputStream fileInputStream = download(url, params); |
||||||
|
String fileContent = IOUtils.toString(fileInputStream, StandardCharsets.UTF_8); |
||||||
|
// 输出文件内容
|
||||||
|
System.out.println("文件内容:"); |
||||||
|
System.out.println(fileContent); |
||||||
|
|
||||||
|
// 写文件到本地
|
||||||
|
//FileUtils.copyInputStreamToFile(fileInputStream, new File("D:/a.txt"));
|
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue