I'm new to working with web service and drupal, and I don't understand some things.
My problem is that I have a service with retrieve to get the user data
http://miweb.es/endpoint/app_user/{EMAIL}
I need pass a email to retrieve the data, but I can't put a dot (.) because I get a error 406
406 Not Acceptable : Unknown or unsupported response format.
Advance thanks.
You can not have a period in the url because Drupal Services uses this to determine the response format but you have a few options to pass the email would be in the header, in the body, as a get variable.
If you nee to keep the url format you could replace the period with a rewrite rule in your .htaccess
Related
I am now using Jmeter to prepare a test plan for my web. The rough flow of the script is that I can check my profile after login. I tried to run my recorded script, and found that the cookie is encoded in http format which I don't want it to be.
Therefore, I would like to ask is there anyway so that I can have a not encrypted cookie value?
[I applied a cookie manager in the script.
The value of the cookie now is something like "%22mh8eIAH8rfsZsM3r%22".
The value that I want is something like "mh8eIAH8rfsZsM3r"]
%22 means " which is percent-encoded, if you want to decode it back - take a look at __urldecode() function:
In general you should not be recording any cookies, you need to add a HTTP Cookie Manager and JMeter will automatically extract incoming cookies from Set-Cookie response header and add them to the next request as Cookie header if domain and path match the ones in the cookie, it's not expired, etc
If you need to access the cookie value as a JMeter Variable the easiest way is adding the next line to user.properties file:
CookieManager.save.cookies=true
and upon JMeter restart you will be able to use the cookie value as ${COOKIE_your-cookie-name-here}
More information: HTTP Cookie Manager Advanced Usage - A Guide
One of the requests for the tool I've been asked to update is the delete request which is structured as follows:
http://{{host_ip}}:{{port}}/lists/list_id=76218cb5fc45605cd632c26f5c5568ac/del
where the list ID will be different every time you send a request.
In order to simplify usage for end users, I want to be able to have them enter everything they need as parameters or headers in the postman GUI as they do for the other requests, rather than modifying the request URL, so I tried something like this:
http://{{host_ip}}:{{port}}/lists/list_id=:list_id/del
but if the : is preceded by an equals sign, the postman parameters tab no longer shows list_id as a path parameter.
Is there a way to make this work using a path parameter? Or is the best solution to explain to users that for the delete request, they need to paste the list_id obtained from the other requests into the request URL?
http://{{host_ip}}:{{port}}/lists/list_id={{list_id}}/del?list_id=1
Now users can pass the list id as query parameter.
In pre-request:
pm.environment.set("list_id",pm.request.url.getQueryString("list_id").split("=")[1])
pm.request.removeQueryParams("list_id")
this will update the list_id varaible and remove the query parameter and send the request in the format you want
If you want to achieve what you are saying then there is no solution for your problem.
But I would suggest you change your URL. As Divyang said, your URL should be like http://{{host_ip}}:{{port}}/lists/{{list_id}}/del or http://{{host_ip}}:{{port}}/lists/del?list_id=123 and then you can use params tab assign values to list_id.
But my best suggestion would be to use RESTful design: http://{{host_ip}}:{{port}}/lists/123123 and make a DELETE request to that URL.
I have created an account on bigchaindb site. Now I want to post some data to online server using http call by postman. I got it that I need to mention api_key and app_id in header. What I need to keep in body and what other parameters should be passed ?
I'm not sure what all you need to tell Postman, but here's a start:
method = POST
URL = https://test.bigchainb.com/api/v1/transactions?mode=commit
Headers
app_id: value
app_key: value
Content-Type: application/json
Body
The final, signed (fulfilled) transaction goes in the body, but I'm not sure what format Postman expects it in. Maybe a Unicode JSON string?
To construct a valid signed transaction, you should probably use one of the BigchainDB drivers, and if you're doing that, then why not also use the same driver to POST the transaction to the BigchainDB Testnet? Here's a list of drivers:
http://docs.bigchaindb.com/projects/server/en/master/drivers-clients/index.html
I can't get POSTMAN to send any post variables to my Django app. Suppose I have a post variable called 'report_request' and it has a value that is a JSON string. On the Django side I want to get request.POST['report_request'] and parse the JSON into a dictionary. But POSTMAN never seems to send the POST data. How exactly do I do this? Is there some magical header I need to send?
Doh! My bad. The URL I need to connect to is really HTTPS rather than HTTP, but I was specifying the URL as http://. Apparently if Postman is asked to connect to an HTTPS site using HTTP, it silently just drops all POST variables. How lovely. Anyway it was an easy fix, just change the http:// url to https:// and all is well.
Be sure to provide the POST data in the body (body tab) of the request and not in the parameters (params tab).
Otherwise, POSTMAN will interpret your POST request as being without data and on a url with GET parameters.
See these specifications about csrf if needed
Check if you're sending the csrf token, it's a security feature.
https://docs.djangoproject.com/en/1.8/ref/csrf/
I am trying to use spring security in my application developing restful web services and not getting the way how to send request to j_spring_security_check directly so that i can provide same url as a web service to Authorization of username and password.
Currently i am using following request pattern:
URL: "http://localhost:8080/CabFMS/j_spring_security_check"
Content-type: application/x-www-form-urlencoded
Body: {'j_username':'user','j_password':'123'}
Response: is Bad credentials
I am not sure about Content-type and body parameters. Please provide suggestion. To send request i am using REST Client
Tarun Gupta
As you correctly noticed j_spring_security_checks expects application/x-www-form-urlencoded content, therefore you need to encode it as such:
j_username=user&j_password=123
Your request pattern should be :
/j_spring_security_check?j_username=user&j_password=123
with method "POST" type.
other then this you can change request action & parameters text "j_spring_security_check" and "j_username" ,"j_password" by configuring alternate text in attributes :
login-processing-url,
username-parameter,
password-parameter
of spring "form-login" tag in security configuration xml file.
Create an AuthenticationSuccessHadler for this, in the authenticationSuccess method, return base64 encoded authorization header with the pattern username:password
Then, on each request, set the header as Basic yourtokenhere