gpt4 book ai didi

java - 字符串到 DataHandler 的转换

转载 作者:行者123 更新时间:2023-12-04 16:49:19 25 4
gpt4 key购买 nike

我正在尝试连接到网络服务:https://test-ubd.mf.gov.pl/uslugi/dokumenty?wsdl我有一个在字符串中用 Base64 编码的数据,但我需要 DataHandler。我尝试了解决方案:Return String in DataHandler - 但我仍然从网络服务中收到 408 错误。当我直接使用 SOAP 发送数据时,一切正常 - 我得到 200(OK 状态)。我使用 NetBeans IDE 8.0.2。

这是我的代码(带有适用于 SOAP 的测试数据):

@WebMethod(operationName = "hello")
public DokumentOdpowiedz hello(@WebParam(name = "name") String txt) throws IOException {

pl.gov.mf.schematy.di.uslugiubd._2013._11._05.DokumentPytanie p = new pl.gov.mf.schematy.di.uslugiubd._2013._11._05.DokumentPytanie();

return wyslijDokument(p);
}

private DokumentOdpowiedz wyslijDokument(pl.gov.mf.schematy.di.uslugiubd._2013._11._05.DokumentPytanie pytanie) {

DataSource ds = null;
try {
ds = new ByteArrayDataSource("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PERla2xhcmFjamEgeG1sbnM9Imh0dHA6Ly9jcmQuZ292LnBsL3d6b3IvMjAxMy8xMC8xMS8xMzI3LyIgeG1sbnM6ZXRkPSJodHRwOi8vY3JkLmdvdi5wbC94bWwvc2NoZW1hdHkvZHppZWR6aW5vd2UvbWYvMjAxMS8wNi8yMS9lRC9EZWZpbmljamVUeXB5LyI+PE5hZ2xvd2VrPjxLb2RGb3JtdWxhcnphIGtvZFBvZGF0a3U9IlBJVCIga29kU3lzdGVtb3d5PSJQSVQtMTEgKDIwKSIgcm9kemFqWm9ib3dpYXphbmlhPSJaIiB3ZXJzamFTY2hlbXk9IjEtMEUiPlBJVC0xMTwvS29kRm9ybXVsYXJ6YT48V2FyaWFudEZvcm11bGFyemE+MjA8L1dhcmlhbnRGb3JtdWxhcnphPjxDZWxabG96ZW5pYSBwb3o9IlBfNiI+MTwvQ2VsWmxvemVuaWE+PFJvaz4yMDE0PC9Sb2s+PEtvZFVyemVkdT4yNDE2PC9Lb2RVcnplZHU+PC9OYWdsb3dlaz48UG9kbWlvdDEgcm9sYT0iUMWCYXRuaWsiPjxldGQ6T3NvYmFOaWVmaXp5Y3puYT48ZXRkOk5JUD4xMTExMTExMTExPC9ldGQ6TklQPjxldGQ6UGVsbmFOYXp3YT5TenBpdGFsIFBvd2lhdG93eTwvZXRkOlBlbG5hTmF6d2E+PC9ldGQ6T3NvYmFOaWVmaXp5Y3puYT48L1BvZG1pb3QxPjxQb2RtaW90MiBwb3o9IlBfMTBBIiByb2xhPSJQb2RhdG5payI+PGV0ZDpPc29iYUZpenljem5hPjxldGQ6UEVTRUw+NjAxMDEwMTExMTY8L2V0ZDpQRVNFTD48ZXRkOkltaWVQaWVyd3N6ZT5LdGVzdCBpbWllIDE8L2V0ZDpJbWllUGllcndzemU+PGV0ZDpOYXp3aXNrbz5LdGVzdCBuYXp3aXNrbyAxPC9ldGQ6TmF6d2lza28+PGV0ZDpEYXRhVXJvZHplbmlhPjE5NjAtMTAtMTA8L2V0ZDpEYXRhVXJvZHplbmlhPjwvZXRkOk9zb2JhRml6eWN6bmE+PGV0ZDpBZHJlc1phbWllc3prYW5pYSByb2R6YWpBZHJlc3U9IlJBRCI+PGV0ZDpBZHJlc1BvbD48ZXRkOktvZEtyYWp1PlBMPC9ldGQ6S29kS3JhanU+PGV0ZDpXb2pld29kenR3bz5NQVpPV0lFQ0tJRTwvZXRkOldvamV3b2R6dHdvPjxldGQ6UG93aWF0PldBUlNaQVdTS0kgWkFDSE9ETkk8L2V0ZDpQb3dpYXQ+PGV0ZDpHbWluYT5CxYFPTklFPC9ldGQ6R21pbmE+PGV0ZDpVbGljYT5UZXN0b3dhPC9ldGQ6VWxpY2E+PGV0ZDpOckRvbXU+MTAwPC9ldGQ6TnJEb211PjxldGQ6TnJMb2thbHU+MTwvZXRkOk5yTG9rYWx1PjxldGQ6TWllanNjb3dvc2M+V2Fyc3phd2E8L2V0ZDpNaWVqc2Nvd29zYz48ZXRkOktvZFBvY3p0b3d5PjAwLTAwMTwvZXRkOktvZFBvY3p0b3d5PjxldGQ6UG9jenRhPldhcnN6YXdhPC9ldGQ6UG9jenRhPjwvZXRkOkFkcmVzUG9sPjwvZXRkOkFkcmVzWmFtaWVzemthbmlhPjwvUG9kbWlvdDI+PFBvenljamVTemN6ZWdvbG93ZT48UF8yND4xPC9QXzI0PjxQXzI1PjEwMC4wMDwvUF8yNT48UF8yNz4xMDAuMDA8L1BfMjc+PFBfMjk+MDwvUF8yOT48UF83Mj4yPC9QXzcyPjwvUG96eWNqZVN6Y3plZ29sb3dlPjxQb3VjemVuaWU+WmEgdWNoeWJpZW5pZSBvYm93acSFemtvbSBwxYJhdG5pa2EgZ3Jvemkgb2Rwb3dpZWR6aWFsbm/Fm8SHIHByemV3aWR6aWFuYSB3IEtvZGVrc2llIGthcm55bSBza2FyYm93eW0uPC9Qb3VjemVuaWU+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9IklELTlkODJkNjg4LTI0MDQtNDc0Ni05YTIyLThkY2ViYzcxOWE3MyI+DQo8ZHM6U2lnbmVkSW5mbyBJZD0iSUQtMzVlYmVlMzgtNDg1OC00MmI0LWI2N2ItYzcwNzFkNjljNzE5Ij48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+DQo8ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIi8+DQo8ZHM6UmVmZXJlbmNlIElkPSJJRC05ZTg0N2YyYS02ODk1LTRmMTktOGFkNi1hNDRlZWZkZTE4NmQiIFVSST0iIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz4NCjwvZHM6VHJhbnNmb3Jtcz4NCjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPg0KPGRzOkRpZ2VzdFZhbHVlPithK3lMNDMrQ1ZuVnhFeXF4Z3liY0F1SzRXVT08L2RzOkRpZ2VzdFZhbHVlPg0KPC9kczpSZWZlcmVuY2U+DQo8ZHM6UmVmZXJlbmNlIElkPSJJRC00YmVmY2ZmMS03MjhhLTRmYmUtOWZjNi1mNzM4YmQwNmY1NTUiIFR5cGU9Imh0dHA6Ly91cmkuZXRzaS5vcmcvMDE5MDMjU2lnbmVkUHJvcGVydGllcyIgVVJJPSIjSUQtNzcxZDIzZTEtNWI3Ny00Yjk2LWI1NTktMjM0YzY3YjA1NDUwIj48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiLz4NCjxkczpEaWdlc3RWYWx1ZT5OYWJaUWxiY3FiaW13WHF0Q016TUhPQWF6b009PC9kczpEaWdlc3RWYWx1ZT4NCjwvZHM6UmVmZXJlbmNlPg0KPC9kczpTaWduZWRJbmZvPg0KPGRzOlNpZ25hdHVyZVZhbHVlIElkPSJJRC05YTA5MDYyNi1iYzE2LTQ5Y2MtYWVkOC05Mjc4YzlhYzI4NjgiPkZxeWxiS3Rnb3o3UlhZSlg2dUhSYm82M1g5N0NHejhGaUhGSHR1SU5FRWxMcjQyZ0hENDJOU0UwSTJTQlFHb2FKaExPdy9hcGw3UFlNNWEyDQphU2NkdU1MWGJpc05DTWxFMmxHVGtaNysyaHBlbjdjNWdrNU5Iek81T0ZwVldpSzI0dHNHUzZ0RzFCUy8rcTJXSnhvd2hya3lwa1pFWTJlWQ0KRWhmRU5CODdpVEk9PC9kczpTaWduYXR1cmVWYWx1ZT4NCjxkczpLZXlJbmZvPjxkczpLZXlWYWx1ZT48ZHM6UlNBS2V5VmFsdWU+PGRzOk1vZHVsdXM+QUlUZWd1YlJVUWRoVFkzWVZJUzA0WFdZT3diVU8rZnBDQ1B4RHkyRkM0OGVqNWFNOVUzbnZ3aldPdlpIMjcxVmxCN3VpZnBUajlha2g5VGkNCmFlN2lvdFRUaW85VXdEcWtxT2RqMWJEMEFCTFhCKy8yNXNMbTJIUW5sczJmNWpVYjFUeUVwQ0l5VWRRbUh5L2xXRTQzODlJY0E4WnRnSmVPDQpNSjJyMjVOZEFBMEI8L2RzOk1vZHVsdXM+DQo8ZHM6RXhwb25lbnQ+QVFBQjwvZHM6RXhwb25lbnQ+DQo8L2RzOlJTQUtleVZhbHVlPg0KPC9kczpLZXlWYWx1ZT4NCjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUQ5RENDQXR5Z0F3SUJBZ0lVUHl6QnNsZmlGc3lKWW1BSTNVTTZyaVJIUitnd0RRWUpLb1pJaHZjTkFRRUZCUUF3VXpFTE1Ba0dBMVVFDQpCaE1DVUV3eEtEQW1CZ05WQkFvTUgwdHlZV3B2ZDJFZ1NYcGlZU0JTYjNwc2FXTjZaVzVwYjNkaElGTXVRUzR4R2pBWUJnTlZCQU1NRVZOYQ0KUVVaSlVpQlVjblZ6ZEdWa0lFTkJNQjRYRFRFek1UQXhOekE1TURBd01Gb1hEVEUxTVRBeE56QTVNREF3TUZvd1BqRUxNQWtHQTFVRUJoTUMNClVFd3hGVEFUQmdOVkJBb01ERUZ6YzJWamJ5MTBaWE4wTWpFWU1CWUdBMVVFQXd3UFNYZHZibUVnUzJGamVtMWhjbVZyTUlHZk1BMEdDU3FHDQpTSWIzRFFFQkFRVUFBNEdOQURDQmlRS0JnUUNFM29MbTBWRUhZVTJOMkZTRXRPRjFtRHNHMUR2bjZRZ2o4UTh0aFF1UEhvK1dqUFZONTc4SQ0KMWpyMlI5dTlWWlFlN29uNlU0L1dwSWZVNG1udTRxTFUwNHFQVk1BNnBLam5ZOVd3OUFBUzF3ZnY5dWJDNXRoMEo1Yk5uK1kxRzlVOGhLUWkNCk1sSFVKaDh2NVZoT04vUFNIQVBHYllDWGpqQ2RxOXVUWFFBTkFRSURBUUFCbzRJQlZ6Q0NBVk13SkFZRFZSMFJCQjB3RzRFWmFYZHZibUV1DQphMkZqZW0xaGNtVnJRR0Z6YzJWamJ5NXdiREJsQmdOVkhTQUVYakJjTUZvR0NpcUVhQUdHOXlNQkFnTXdUREJLQmdnckJnRUZCUWNDQVJZKw0KYUhSMGNEb3ZMM2QzZHk1bGJHVnJkSEp2Ym1samVtNTVjRzlrY0dsekxuQnNMMmx1Wm05eWJXRmphbVV2Wkc5cmRXMWxiblI1TFdrdGRXMXYNCmQza3dFUVlKWUlaSUFZYjRRZ0VCQkFRREFnV2dNQXNHQTFVZER3UUVBd0lFOERBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCDQpCUVVIQXdRd0h3WURWUjBqQkJnd0ZvQVV0YXlWRnREcVBWMWMyZnFkV1ZGN1hwR1JyNEV3UlFZRFZSMGZCRDR3UERBNm9EaWdOb1kwYUhSMA0KY0RvdkwzZDNkeTVsYkdWcmRISnZibWxqZW01NWNHOWtjR2x6TG5Cc0wyTnliQzkwY25WemRHVmtYMk5oTG1OeWJEQWRCZ05WSFE0RUZnUVUNCkI0aGVsWE11OUlxRWEwSi9nNVNmZ1dDZFlVSXdEUVlKS29aSWh2Y05BUUVGQlFBRGdnRUJBR21ZVzA0NTVZRENHNFRtZ3FTNFJRTlBOVDhJDQpmbFA2UHJqTEU0MGlYSlBCc0VuWGxERnk1cjlNY25zSGw0RnEyejlpaktiUzVoSmw2aStFSlY2Z05CNzJ6M1dxb2F6Y3dMUzlNT2lack1vMw0KUFhFdVd3ejlqY3Ywc2I1SjNQZ0ZOdm9ZSWs2SDZVQlEvUWo5S0lBeVZkeGNUN2pONjZld0NjVkpDMW5PWjZjRGVFSXoxTDhzb25YeTVRamsNClkydGNZaGFiU2FKSDVVUWVRbzhtYjZwM0xUYnpwU05KNkI2aUZFT1BHK2R6Y3cySlBGajVIaGd5d0piMHZVQWpUNFg4K2FicW9zY1U2TG1pDQpsRllPMnRUb1dDYWF2bUgwL3YxWitCMFdmbzdpemJvaWlmbzlLMXM0cTVDcWFBcnQveEdkSGVjZ2dWTHZWTjBUN1pvQ3FMT0lFTWs9PC9kczpYNTA5Q2VydGlmaWNhdGU+DQo8L2RzOlg1MDlEYXRhPg0KPC9kczpLZXlJbmZvPg0KPGRzOk9iamVjdD48eGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXMgeG1sbnM6eGFkZXM9Imh0dHA6Ly91cmkuZXRzaS5vcmcvMDE5MDMvdjEuMy4yIyIgSWQ9IklELTk3MDMyMWUxLWRiMzYtNDIxNi05N2FhLTI5Yjc5N2ZlYmNhNSIgVGFyZ2V0PSIjSUQtOWQ4MmQ2ODgtMjQwNC00NzQ2LTlhMjItOGRjZWJjNzE5YTczIj48eGFkZXM6U2lnbmVkUHJvcGVydGllcyBJZD0iSUQtNzcxZDIzZTEtNWI3Ny00Yjk2LWI1NTktMjM0YzY3YjA1NDUwIj48eGFkZXM6U2lnbmVkU2lnbmF0dXJlUHJvcGVydGllcz48eGFkZXM6U2lnbmluZ1RpbWU+MjAxNC0xMi0xOVQxMjoxMjo1N1o8L3hhZGVzOlNpZ25pbmdUaW1lPg0KPHhhZGVzOlNpZ25pbmdDZXJ0aWZpY2F0ZT48eGFkZXM6Q2VydD48eGFkZXM6Q2VydERpZ2VzdD48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3NoYTEiLz4NCjxkczpEaWdlc3RWYWx1ZT5iR29hTmYrR3hWQTk3OHh1MUlzdHU0UEJiaHM9PC9kczpEaWdlc3RWYWx1ZT4NCjwveGFkZXM6Q2VydERpZ2VzdD4NCjx4YWRlczpJc3N1ZXJTZXJpYWw+PGRzOlg1MDlJc3N1ZXJOYW1lPkNOPVNaQUZJUiBUcnVzdGVkIENBLE89S3Jham93YSBJemJhIFJvemxpY3plbmlvd2EgUy5BLixDPVBMPC9kczpYNTA5SXNzdWVyTmFtZT4NCjxkczpYNTA5U2VyaWFsTnVtYmVyPjM2MDY2NDUyNDcwODkwMDEzNjI0MDk1NjI5MDYxODQ1MzE4NDA0NTk5ODYyMjY5NjwvZHM6WDUwOVNlcmlhbE51bWJlcj4NCjwveGFkZXM6SXNzdWVyU2VyaWFsPg0KPC94YWRlczpDZXJ0Pg0KPC94YWRlczpTaWduaW5nQ2VydGlmaWNhdGU+DQo8L3hhZGVzOlNpZ25lZFNpZ25hdHVyZVByb3BlcnRpZXM+DQo8eGFkZXM6U2lnbmVkRGF0YU9iamVjdFByb3BlcnRpZXM+PHhhZGVzOkNvbW1pdG1lbnRUeXBlSW5kaWNhdGlvbj48eGFkZXM6Q29tbWl0bWVudFR5cGVJZD48eGFkZXM6SWRlbnRpZmllcj5odHRwOi8vdXJpLmV0c2kub3JnLzAxOTAzL3YxLjIuMiNQcm9vZk9mU2VuZGVyPC94YWRlczpJZGVudGlmaWVyPg0KPC94YWRlczpDb21taXRtZW50VHlwZUlkPg0KPHhhZGVzOkFsbFNpZ25lZERhdGFPYmplY3RzLz4NCjwveGFkZXM6Q29tbWl0bWVudFR5cGVJbmRpY2F0aW9uPg0KPC94YWRlczpTaWduZWREYXRhT2JqZWN0UHJvcGVydGllcz4NCjwveGFkZXM6U2lnbmVkUHJvcGVydGllcz4NCjwveGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXM+DQo8L2RzOk9iamVjdD4NCjwvZHM6U2lnbmF0dXJlPjwvRGVrbGFyYWNqYT4=", "text/plain; charset=UTF-8");
} catch (IOException ex) {
Logger.getLogger(NewWebService.class.getName()).log(Level.SEVERE, null, ex);
}
DataHandler handler = new DataHandler(ds);
pytanie.setDokument(handler);

pl.gov.mf.uslugibiznesowe.di.uslugiubd._2013._11._05.UslugiUBD port = service.getUslugiUBDPort();
return port.wyslijDokument(pytanie);
}

最佳答案

我用过

byte[] bytes = str.getBytes("your encoding" );
ByteArrayDataSource barrds = new ByteArrayDataSource(bytes, "application/octet-stream");
DataHandler result = new DataHandler(barrds);

更新。如果您需要将 base64enncoded 文件作为字符串使用,作为解决方案,我首先解码这种字符串并将输出字节数组用作 ByteArrayDataSource 构造函数的输入参数

byte[] bytes = org.springframework.security.codec.Base64.decode(str.getBytes("your encoding");
ByteArrayDataSource barrds = new ByteArrayDataSource(bytes, "application/octet-stream");
DataHandler result = new DataHandler(barrds);

关于java - 字符串到 DataHandler 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27692151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com