小编Zac*_*ick的帖子

如何在python中发送带有请求的"multipart/related"?

我正在尝试使用Python中的请求发送多部分/相关消息.该脚本看起来很简单,只是请求似乎只允许发送多部分/表单数据消息,尽管他们的文档没有明确说明这种或那种方式.

我的用例是发送带有附件的肥皂.我可以提供一个字典,其中包含两个文件,其内容是测试soap消息,以及我正在尝试发送的测试文档.第一个包含带有所有指令的soap消息,第二个是实际文档.

但是,如果我没有指定标头值,则在使用files选项时,请求似乎只使用multipart/form-data.但是,如果我在尝试指定不同的多部分类型时指定标题,则请求似乎不会添加到mime边界信息中.

url = 'http://10.10.10.90:8020/foo'
headers = {'content-type': 'multipart/related'}
files = {'submission': open('submission_set.xml', 'rb'), 'document': open('document.txt', 'rb')}
response = requests.post(url, data=data, headers=headers)
print response.text
Run Code Online (Sandbox Code Playgroud)

有没有办法使用请求完成此操作?还是我应该看到另一种工具?

python mime multipart python-requests

12
推荐指数
2
解决办法
5124
查看次数

如何在实现通用接口时返回具体类型

我有一个接口,将由几个不同的类实现,每个类使用不同的类型和返回类型.返回类型可以从方法泛型类型中推断出来,但是我在实现它时遇到了麻烦.

界面目前看起来像这样:

public interface TransformUtilsBase<T> {

    Class<?> transformToNhin(T request, BrokerContext brokerContext);
}
Run Code Online (Sandbox Code Playgroud)

我希望Impl类看起来像:

public class TransformUtilsXCPD implements TransformUtilsBase<foo> {

    bar transformToNhin(foo request, BrokerContext brokerContext) {
        code here
    }
Run Code Online (Sandbox Code Playgroud)

在impl我知道返回类型应该是什么.在接口级别没有办法告诉.

我可以放弃一个接口,只是使用相同的方法名称制作几个类,但我想将它形式化,因为它们都被用于相同的目的.只有类型不同.

或者我可以只使用一大类静态方法,因为它们是util操作,但是管理具有相同名称的所有方法的类以及所有必需的辅助方法(同样具有相同名称)变得笨重.

实现接口似乎是形式化功能的最佳选择,即使我无法执行静态方法.我只是无法弄清楚如何处理返回类型.

编辑:扩展界面以显示完整示例以防止进一步混淆.接口

public interface TransformUtilsBase<T, U> {
    Class<?> transformToNhin(T request, BrokerContext brokerContext);
    Class<?> transformToXca(U request, BrokerContext brokerContext);
}
Run Code Online (Sandbox Code Playgroud)

IMPL

public class TransformUtilsXCPD implements TransformUtilsBase<Foo, Bar> {
    Baz transformToNhin(Foo request, BrokerContext brokerContext) { code here }
    Biz transformToXca(Bar request, BrokerContext brokerContext) { code here }
}
Run Code Online (Sandbox Code Playgroud)

java generics interface

10
推荐指数
1
解决办法
3958
查看次数

使用maven时,Kotlin没有从src/main/kotlin编译

kotlin编译器似乎只是试图编译src/main/java中的.kt文件,而忽略了src/main/kotlin.但是,所有内容似乎都在IntelliJ IDE中正确链接.没有错误.

以下是我对kotlin的插件配置:

<plugins>
        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
            <version>${kotlin.version}</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <goals> <goal>compile</goal> </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                            <sourceDir>${project.basedir}/src/main/java</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <goals> <goal>test-compile</goal> </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
                            <sourceDir>${project.basedir}/src/test/java</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行mvn clean install时,kotlin编译器似乎没有运行.所以我尝试直接从插​​件运行kotlin编译器.

    [INFO] --- kotlin-maven-plugin:1.1.2:compile (default-cli) @ eagle-client-core ---
[INFO] Kotlin Compiler version 1.1.2
[INFO] Compiling Kotlin sources from [C:\Users\me\workspace\Project\Clients\project-client\project-client-core\src\main\java]
Run Code Online (Sandbox Code Playgroud)

如您所见,src/main/java正在扫描,但不是src/main/kotlin.

我的配置没有看到任何明显错误.任何帮助都是适当的.

intellij-idea maven kotlin

8
推荐指数
1
解决办法
1688
查看次数