How to call API (Oauth 1.0)?

前端 未结 3 1239
[愿得一人]
[愿得一人] 2020-12-03 16:23

I am trying to call this API (Oauth1.0 standard):

https://appcenter.intuit.com/api/v1/Connection/Reconnect

And what I am doing is : (It am working on java)

相关标签:
3条回答
  • 2020-12-03 16:47

    Here is a builder I created to build the OAuth v1 Authorization header. You may find it useful.

    https://gist.github.com/robotdan/33f5834399b6b30fea2ae59e87823e1d

    Example usage calling Twitter:

    String authorizationHeader = new OAuth1AuthorizationHeaderBuilder()
             .withMethod("POST")
             .withURL("https://api.twitter.com/oauth/access_token")
             .withConsumerSecret("twitterConsumerSecret")
             .withTokenSecret("your_oauth_token_secret")
             .withParameter("oauth_consumer_key", "your_consumer_key")
             .withParameter("oauth_token", "your_oauth_token")
             .build()
    
    0 讨论(0)
  • 2020-12-03 16:55

    This is the working HTTP GET requestcode in java when all keys are in hand. Hope it does your work.

    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import oauth.signpost.OAuthConsumer;
    import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
    import oauth.signpost.exception.OAuthCommunicationException;
    import oauth.signpost.exception.OAuthExpectationFailedException;
    import oauth.signpost.exception.OAuthMessageSignerException;
    import org.apache.http.*;
    import org.apache.http.client.*;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.client.methods.*;  //HttpHead, HttpPut, HttpGet, etc...
    import org.apache.http.util.EntityUtils;
    
    public class HttpGetRequest {
    
    public static void demo() throws IOException {           
        String consumer_key = "bcd";
        String consumer_secret = "efg";
        String access_token = "rst";
        String access_secret= "xzy";
    
        OAuthConsumer consumer = new CommonsHttpOAuthConsumer(consumer_key,
    consumer_secret);
        consumer.setTokenWithSecret(access_token, access_secret);
    
    
        String uri = "your url here";
        HttpClient httpclient = new DefaultHttpClient();
        HttpGet httpget = new HttpGet(uri);
        try {
            consumer.sign(httpget);
        } catch (OAuthMessageSignerException ex) {
            Logger.getLogger(HttpRequest.class.getName()).log(Level.SEVERE,       null, ex);
        } catch (OAuthExpectationFailedException ex) {
            Logger.getLogger(HttpRequest.class.getName()).log(Level.SEVERE, null, ex);
        } catch (OAuthCommunicationException ex) {
            Logger.getLogger(HttpRequest.class.getName()).log(Level.SEVERE, null, ex);
        }
        HttpResponse response = httpclient.execute(httpget);
        System.out.println(response.getStatusLine().toString());
        HttpEntity entity = response.getEntity();
        System.out.println();
        System.out.println(EntityUtils.toString(entity));       
    }
    public static void main(String[] args) {
        try {
            demo();
        }
        catch(IOException ioe) {
            System.out.println(ioe);
        }
    }
    }
    
    0 讨论(0)
  • 2020-12-03 17:06

    PFB working code. Hope it will be useful.

    import java.io.InputStream;
    import java.io.StringWriter;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    import oauth.signpost.OAuthConsumer;
    import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
    import oauth.signpost.exception.OAuthCommunicationException;
    import oauth.signpost.exception.OAuthExpectationFailedException;
    import oauth.signpost.exception.OAuthMessageSignerException;
    import oauth.signpost.signature.AuthorizationHeaderSigningStrategy;
    
    import org.apache.commons.io.IOUtils;
    import org.apache.http.HttpHost;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpRequestBase;
    import org.apache.http.impl.client.DefaultHttpClient;
    
    import com.intuit.ipp.data.Account;
    import com.intuit.ipp.exception.FMSException;
    import com.intuit.ipp.net.MethodType;
    import com.intuit.ipp.services.DataService;
    
    public class POCWithoutDevkitTest {
    
        private DataService service;
        private OAuthConsumer oAuthConsumer;
        private static String realmID = null;
    
        public POCWithoutDevkitTest() {
            realmID = "122294642099";
            String consumerKey = "AAAAA";
            String consumerSecret = "BBBBB";
            String accessToken = "CCCCC";
            String accessTokenSecret = "DDDDD";
    
            setupContext(consumerKey, consumerSecret, accessToken, accessTokenSecret);
        }
    
        public void setupContext(String consumerKey, String consumerSecret, String accessToken, String accessTokenSecret) {
                this.oAuthConsumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);
                oAuthConsumer.setTokenWithSecret(accessToken, accessTokenSecret);
                oAuthConsumer.setSigningStrategy(new AuthorizationHeaderSigningStrategy());
        }
    
        public void authorize(HttpRequestBase httpRequest) throws FMSException {
            try {
                oAuthConsumer.sign(httpRequest);
            } catch (OAuthMessageSignerException e) {
                throw new FMSException(e);
            } catch (OAuthExpectationFailedException e) {
                throw new FMSException(e);
            } catch (OAuthCommunicationException e) {
                throw new FMSException(e);
            }
        }
    
        public void executeGetRequest(String customURIString){
            DefaultHttpClient client = new DefaultHttpClient();
            client.getParams().setParameter("http.protocol.content-charset", "UTF-8");
    
            HttpRequestBase httpRequest = null;
            URI uri = null;
    
            try {
                uri = new URI(customURIString);
            } catch (URISyntaxException e) {
                e.printStackTrace();
            }
    
            String methodtype = "GET";
    
            if (methodtype.equals(MethodType.GET.toString())) {
                httpRequest = new HttpGet(uri);
            }
    
            httpRequest.addHeader("content-type", "application/xml");
            httpRequest.addHeader("Accept","application/xml");
    
            try {
                authorize(httpRequest);
            } catch (FMSException e) {
                e.printStackTrace();
            }
    
    
            HttpResponse httpResponse = null;
            try {
                HttpHost target = new HttpHost(uri.getHost(), -1, uri.getScheme());
                httpResponse = client.execute(target, httpRequest);
                System.out.println("Connection status : " + httpResponse.getStatusLine());
    
                InputStream inputStraem = httpResponse.getEntity().getContent();
    
                StringWriter writer = new StringWriter();
                IOUtils.copy(inputStraem, writer, "UTF-8");
                String output = writer.toString();
    
                System.out.println(output);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    
        public static void main(String args[]) {
            POCWithoutDevkitTest withoutDevkitClient = new POCWithoutDevkitTest();
            withoutDevkitClient.executeGetRequest("https://appcenter.intuit.com/api/v1/connection/reconnect");
        }
    
    }
    

    Dependencies

        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.3.1</version>
        </dependency>
        <dependency>
            <groupId>oauth.signpost</groupId>
            <artifactId>signpost-core</artifactId>
            <version>1.2.1.1</version>
        </dependency>
        <dependency>
            <groupId>oauth.signpost</groupId>
            <artifactId>signpost-commonshttp4</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.3.1</version>
        </dependency>
    

    Thanks

    0 讨论(0)
提交回复
热议问题