将 ruby​​ 中的 HTTP post 转换为 java 或 groovy

我有一些用于访问 API 的 ruby http post 代码,但现在我需要将其转换为 java 或 groovy


这是我在 ruby 上的代码


def loginWithEmailPassword(str_email, str_password)

  uri = URI(url)


  req = Net::HTTP::Post.new(uri)

  req['Content-Type'] = 'application/json'

  req['x-request-id'] = "xyz-#{SecureRandom.hex}"

  req['user-agent'] = 'xyz'


  req.body = { 

  email: str_email, 

  password: str_password

  }.to_json


  Net::HTTP.start(uri.host, uri.port,

    :use_ssl => uri.scheme == 'https',

    :verify_mode => OpenSSL::SSL::VERIFY_NONE) do |http|

    response = http.request(req) # Net::HTTPResponse object


    if(response.code != '200')

      puts response.body # Show response body

      raise ("ERROR: login error... error code #{response.code}")

    end

    return response.body

  end

end

这是我在java上的代码


    def loginApiWithEmailPassword(String sEmail, String sPassword){

            URL url = new URL(m_url + "/login/password");

            JSONObject json = new JSONObject();

            json.put("email", sEmail);

            json.put("password", sPassword);

            HttpURLConnection conn = (HttpURLConnection)url.openConnection();

// set header

            conn.setRequestMethod("POST")

            conn.setRequestProperty("Content-Type", "application/json");

            conn.setRequestProperty("user-agent", aaa);

            conn.setRequestProperty("x-request-id", getSecureRandom(s))

            conn.setDoOutput(true);

            conn.setDoInput(true);


            OutputStream os = conn.getOutputStream();


            os.write(json.toJSONString().getBytes());

            os.close();


我试图将其转换为 java 但失败了,卡在错误上 "javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"


并且无法继续检查下一个功能,谁能帮我完成java或groovy的http post


千万里不及你
浏览 136回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java