如何转换cURL以改进正确的形式?

时间:2017-03-11 05:53:11

标签: java android url curl retrofit2

抱歉我的英文。我想用这个service。用于确定文本的语言。

请求(卷曲):

    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration config = new HttpConfiguration();

        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        ConfigureOAuth(app);

        WebApiConfig.Register(config);

        // Make sure this line is called before ConfigureAuth(app), 
        // app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        app.UseWebApi(config);
    }

我使用Retrofit作为请求。

curl -X POST -d "outputMode=json" --data-urlencode text@ibm.txt -d "url=http://www.ibm.com/us-en/" "https://gateway-a.watsonplatform.net/calls/text/TextGetLanguage?apikey=%API_KEY%"

创建改造对象:

public interface LanguageDetectionApi {
    public static final String ROOT_URL = "https://gateway-a.watsonplatform.net/calls/";

    @POST("/text/TextGetLanguage")
    Call<List<PostModel>> getData(@Query("apikey") String apikey, @Query("text") String text);
}

并发送请求:

public class App extends Application {

    private static LanguageDetectionApi _languageDetectionApi;
    private Retrofit _retrofit;

    @Override
    public void onCreate() {
        super.onCreate();

        _retrofit = new Retrofit.Builder()
                .baseUrl(_languageDetectionApi.ROOT_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        _languageDetectionApi = _retrofit.create(LanguageDetectionApi.class);
    }


    public static LanguageDetectionApi getLanguageDetectionApi() {
        return _languageDetectionApi;
    }
}

我在网站http://www.jsonschema2pojo.org/中生成的PostModel。

问题: 虽然apikey完全有效,但我没有回应。 如何在界面中指定参数“outputMode = json”? 我正确地将cURL翻译成LanguageDetectionApi? 在我看来,在LanguageDetectionApi类中的整个错误。你能帮忙解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

更改以下网址代码:

public interface LanguageDetectionApi {
    public static final String ROOT_URL = "https://gateway-a.watsonplatform.net";

    @POST("/calls/text/TextGetLanguage")
    Call<List<PostModel>> getData(@Query("apikey") String apikey, @Query("text") String text);
}

基本网址应该是主机名。