The "woocommerce api generate signature" url is
String getUrl = GET&http%3A%2F%2Fprojectrepo.net%2Fscoop%2Fwp-json%2Fwc%2Fv2%2Forders&oauth_consumer_key%3Dck_2f53925c....6407f09f67f5f118d01ed80e%26oauth_signature_method%3DHMAC-SHA1
When the url is passed through the below method,
URL url = new URL(getUrl);
"malformed url" error is shown.
And when the "GET&" is ommited from the url,this error is gone.But the "GET&" is needed for signature generation in woocommerce api.
What is the problem? If any doubt,please comment.
Thanks for your time.
Well the "GET&" characters before the url is mandatory for generating signature.When the actual posting of data is done the "GET&" characters should be ommited.
Everyone thanks for your time.
Related
I’m having a use case where I need to get response from server where the url looks like the below
https://urlname/path?query=test.project+IN+(integer value)+AND+test.folder+IN+(integer value).
This url returns json as response body n this is working with postman and browser.
But I’m getting status code 500 when I hit this from IntelliJ using io.restassured.response.Response class methods as below
Response res = given()
.auth()
.contentType(“json”)
.queryParam(query,param)
.get(url);
Try this code. This will access the url https://urlname/path?query=test.project+IN+(1234)+AND+test.folderId+IN+(5433)
String query = "query";
String params = "test.project+IN+(1234)+AND+test.folderId+IN+(5433)";
Response res = given().contentType(ContentType.JSON).auth().basic("", "").queryParam(query, params)
.urlEncodingEnabled(false).get("https://urlname/path");
Found the solution or rather I can found the actual problem that is I was writing the above code on Jira API’s and I was storing the username and password in a string variable which is used inside auth().basic(“”,””).
Since the password are encrypted it was not allowing RestAssured class to post or access the API.
So I used http clients Base64 password encoding and made the post call.
I want to parse a webpage called autocoder O*NET
so I want to send request to the URL, In an HTTP POST request, the parameters are not sent along with the URL as mentioned in HERE
My question is how I know the parameters I should pass?
in autocoder o*net I consider the textfield in the form as a parameters that I should pass to the url is this right?
Map<String,Object> params = new LinkedHashMap<>();
params.put("jobtitle", "Back-End Developer");
params.put("jobdesc", "");
params.put("educcode", "");
params.put("naics", "");
params.put("category", "");
params.put("employer", "");
Unless the operator of the mentioned web site publishes an official api description for the url one can post to, you can only guess which parameters are meaningful.
I haved used the firefox developers tools that are bundled with the browser (version 47.0.1) and found that these are likely to be processed:
action
view
jobtitle
jobdesc
codetype
employer
categroy
educcode
naics
Put the params in the http request body.(I suggest you use Jsoup to do it.)
you can use the chrome debug mode, like this screenshot
Team,
I have created a search API and made it as GET request. Now when I try to give only a single space in search, it gives me 404 resource not found error. For example:
http://localhost:8080/myproject/myapp/search/ ?pageNo=1&limit=20
As you can see there is a space in the URL after /search/. This URL returns me the error 404. I'm using Spring 4.x version.
Thanks
The URL is invalid with a space between the URL part and the request parameter string '?'. You need to encode the URL to replace characters like space with '%20'.
Try:
String encodedUrl = URLEncoder.encode(url, "UTF-8");
You can also trim all spaces before your query goes to request URL. Not sure that user need to have ability to search by space (nothing).
And using of URLEncoder for strings coming to URL is very recommended.
I am attempting to send a response redirect at the end of a Java servlet post request:
session.setAttribute("token", token);
String redirectUrl = response.encodeRedirectURL(MYSITE_URL + "extras.html");
response.sendRedirect(redirectUrl)
Stepping through the code redirectUrl equates to "http://localhost:8080/mysite/extras.html". The browswer however is attempting to request the following url, which to the observant is acutally the html of the document I'm requesting.
http://localhost:8080/mysite/%3C!DOCTYPE%20html%3E%20%3Chtml%3E%20%20%20%20%20%3Chead%3E%20%20%20%20%20%20%20%20%20%3Ctitle%3EBet%20Ya%20Friends%3C/title%3E%20%20%20%20%20%20%20%20%20%3Cmeta%20name=%22viewport%22%20content=%22width=device-width,%20initial-scale=1%22%3E%20%20%20%20%20%20%20%20%20%3Clink%20rel=%22stylesheet%22%20href=%22http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css%22%20/%3E%20%20%20%20%20%20%20%20%3Cscript%20src=%22http://code.jquery.com/jquery-1.8.2.min.js%22%3E%3C/script%3E%20%20%20%20%20%20%20%20%3Cscript%20src=%22http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js%22%3E%3C/script%3E%20%20%20%20%3C/head%3E%20%20%20%20%20%3Cbody%3E%20%20%20%20%20%20%20%20%20%3Cdiv%20data-role=%22page%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20data-role=%22header%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ch1%3EBet%20Ya%20Friends%3C/h1%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/div%3E%3C!--%20/header%20--%3E%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%20data-role=%22listview%22%20data-inset=%22true%22%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Cdiv%3EView%20Friends%3C/div%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cspan%20class=%22ui-li-count%22%3E6%3C/span%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ECanary%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ECat%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EDog%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EGerbil%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EIguana%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EMouse%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/ul%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Cdiv%3EMake%20A%20Bet%3C/div%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class=%22ui-li-count%22%3E6%3C/p%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EChicken%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ECow%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EDuck%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EHorse%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EPig%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ESheep%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/ul%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Cdiv%3EBet%20History%3C/div%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20class=%22ui-li-count%22%3E18%3C/p%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EAardvark%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EAlligator%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EAnt%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EBear%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EBeaver%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ECougar%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EDingo%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EEagle%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EElephant%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EFerret%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EFrog%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EGiraffe%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ELion%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EMonkey%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EPanda%20bear%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EPolar%20bear%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3ETiger%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%3E%3Ca%20href=%22index.html%22%3EZebra%3C/a%3E%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/ul%3E%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/li%3E%20%20%20%20%20%20%20%20%20%20%20%20%3C/ul%3E%20%20%20%20%20%20%20%20%3C/div%3E%3C!--%20/page%20--%3E%3C!--%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ca%20href=%22#%22%20onclick=%22getUserFriends%28%29;%22%3EGet%20friends%3C/a%3E%3Cbr%3E%20%20%20%20%20%20%20%20%20%3Cdiv%20id=%22user-friends%22%3E%3C/div%3E%20%20%20%20%20%20%20%20%20%3Cscript%3E%20%20%20%20%20%20%20%20%20function%20getUserFriends%28%29%20{%20%20%20%20%20%20%20%20%20%20%20FB.api%28%27/me/friends&fields=name,picture%27,%20function%28response%29%20{%20%20%20%20%20%20%20%20%20%20%20%20%20console.log%28%27Got%20friends:%20%27,%20response%29;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28!response.error%29%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20markup%20=%20%27%27;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20friends%20=%20response.data;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i=0;%20i%20%3C%20friends.length%20&&%20i%20%3C%2025;%20i++%29%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20friend%20=%20friends[i];%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20markup%20+=%20%27%3Cimg%20src=%22%27%20+%20friend.picture%20+%20%27%22%3E%20%27%20+%20friend.name%20+%20%27%3Cbr%3E%27;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27user-friends%27%29.innerHTML%20=%20markup;%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20}%29;%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%3C/script%3E--%3E%20%20%20%20%3C/body%3E%3C/html%3E
My question is, why? Why is the actual html document being requested rather than the url? And why is encodeURL not encoding the session in the URL?
You mentioned that MYSITE_URL is
"localhost:8080/mysite/"
. That could be the problem. Its missing http in the beginning. Can you modify MYSITE_URL to
"http://localhost:8080/mysite/"
and then try ?
I am just wondering if this is a bug or im incorrectly using the sdk.
The Presigned URL generation code is as follows:
java.util.Date expiration = new java.util.Date();
long milliSeconds = expiration.getTime();
milliSeconds += 1000 * 60 * 60; // Add 1 hour.
expiration.setTime(milliSeconds);
URL url = s3.generatePresignedUrl(userPicturesBucket, "walala", expiration, HttpMethod.PUT);
But this will generate a presigned ulr in where the "Signature" is wrong.
Signature=7iw7DfZ3Ed24kQpsV5Hp9VrJ%2BMo%3D
I can test this by using RESTClient to send a PUT request on the complete address. I will get a forbidden response saying that SignatureDoesNotMatch.
However If i use the Amazon S3 Signature Tester to sign the same request I will get a different "Signature"
Signature=ztp2nD6gVurYhAvQojpZhReSuwE%3D
This one however DOES work, and sending the PUT request will return a 200 response and the object will be created.
My question is, Is this an amazon sdk for java bug? Or why is the signature different.
Thanks
There is a possible error in your code:
generatePresignedUrlRequest.setExpiration(expiration);
// Next line should use the 'generatePresignedUrlRequest' object
URL url = s3.generatePresignedUrl(generatePresignedUrlRequest);
I am not 100% sure but i believe the problem was related to the fact that the signing in the url also has to include the object type and format when sending the request and the program i was using to check would automatically add charset field even if it was an image.
So adding this "PUT\n\nimage/jpeg; charset=UTF-8\n" to the URL to sign seems to have fixed the problem.