所以这个HTML代码为我提交了正确格式的数据.
<form action="https://www.example.com/register.php" method="post" enctype="multipart/form-data">
Name: <input type="text" name="userName"><BR />
Email: <input type="text" name="userEmail"><BR />
Password: <input type="text" name="userPassword"><BR />
Avatar: <input type="file" name="avatar"><BR />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我已经查看过很多关于如何在iOS上进行multipart/form-data POST的文章,但没有一篇真正解释如果有正常的参数以及文件上传怎么办.
你能帮我解决一下在Obj-C中发帖的代码吗?
谢谢!
所以,当我使用Koush的Ion时,我能够通过一个简单的方式在我的帖子中添加一个json体 .setJsonObjectBody(json).asJsonObject()
我正在转向OkHttp,我真的没有看到一个很好的方法来做到这一点.我到处都收到错误400.
有人有主意吗?
我甚至尝试将其手动格式化为json字符串.
String reason = menuItem.getTitle().toString();
JsonObject json = new JsonObject();
json.addProperty("Reason", reason);
String url = mBaseUrl + "/" + id + "/report";
Request request = new Request.Builder()
.header("X-Client-Type", "Android")
.url(url)
.post(RequestBody
.create(MediaType
.parse("application/json"),
"{\"Reason\": \"" + reason + "\"}"
))
.build();
client.newCall(request).enqueue(new com.squareup.okhttp.Callback() {
@Override
public void onFailure(Request request, IOException throwable) {
throwable.printStackTrace();
}
@Override
public void onResponse(Response response) throws IOException {
if (!response.isSuccessful()) throw new IOException(
"Unexpected code " + response);
runOnUiThread(new Runnable() {
@Override …Run Code Online (Sandbox Code Playgroud) 我有我的配置设置来处理一堆GET请求,这些请求可以渲染处理分析和解析查询字符串以进行日志记录的像素.使用额外的第三方数据流,我需要处理对给定URL的POST请求,该URL在其请求主体内部具有预期可记录格式的JSON.我不想使用辅助服务器,proxy_pass只想将整个响应记录到关联的日志文件中,就像它对GET请求所做的那样.我正在使用的一些代码片段如下所示:
GET请求(效果很好):
location ^~ /rl.gif {
set $rl_lcid $arg_lcid;
if ($http_cookie ~* "lcid=(.*\S)")
{
set $rl_lcid $cookie_lcid;
}
empty_gif;
log_format my_tracking '{ "guid" : "$rl_lcid", "data" : "$arg__rlcdnsegs" }';
access_log /mnt/logs/nginx/my.access.log my_tracking;
rewrite ^(.*)$ http://my/url?id=$cookie_lcid? redirect;
}
Run Code Online (Sandbox Code Playgroud)
这是我想要做的事情:POST请求(不起作用):
location /bk {
log_format bk_tracking $request_body;
access_log /mnt/logs/nginx/bk.access.log bk_tracking;
}
Run Code Online (Sandbox Code Playgroud)
冰壶curl http://myurl/bk -d name=example给了我一个404页面找不到.
然后我尝试了:
location /bk.gif {
empty_gif;
log_format bk_tracking $request_body;
access_log /mnt/logs/nginx/bk.access.log bk_tracking;
}
Run Code Online (Sandbox Code Playgroud)
冰壶curl http://myurl/bk.gif -d name=example给了我一个405 Not Allowed.
我目前的版本是nginx/0.7.62 …
我在这里遗漏了一些东西.我有这个jQuery JavaScript:
$.ajax({
type: "POST",
url: "/update-note-order",
dataType: "json",
data: {
orderedIds: orderedIds,
unixTimeMs: new Date().getTime()
}
});
Run Code Online (Sandbox Code Playgroud)
orderedIdsJavaScript编号数组在哪里(例如var orderedIds = [1, 2]).
处理Controller方法是:
[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
...
}
Run Code Online (Sandbox Code Playgroud)
当我放入Debugger.Break()时UpdateNoteOrder(),orderedIds是null在Watch窗口中.(unixTimeMs但是,有一个数值.)
如何通过数字阵列$.ajax(),从而orderedIds是long[]在我的控制?
使用带有Post请求的HTTP dev客户端和Content-Type application/x-www-form-urlencoded
1)只有@RequestBody
请求 - localhost:8080/SpringMVC/welcome In Body - name = abc
码-
@RequestMapping(method = RequestMethod.POST)
public String printWelcome(@RequestBody String body, Model model) {
model.addAttribute("message", body);
return "hello";
}
Run Code Online (Sandbox Code Playgroud)
//按预期将body标记为"name = abc"
2)只有@RequestParam
请求 - localhost:8080/SpringMVC/welcome In Body - name = abc
码-
@RequestMapping(method = RequestMethod.POST)
public String printWelcome(@RequestParam String name, Model model) {
model.addAttribute("name", name);
return "hello";
}
Run Code Online (Sandbox Code Playgroud)
//按预期将名称命名为"abc"
3)两者在一起
请求 - localhost:8080/SpringMVC/welcome In Body - name = abc
码-
@RequestMapping(method = RequestMethod.POST)
public String printWelcome(@RequestBody String body, …Run Code Online (Sandbox Code Playgroud) 我正在使用这个方法的RESTfull webservice:
@POST
@Consumes({"application/json"})
@Path("create/")
public void create(String str1, String str2){
System.out.println("value 1 = " + str1);
System.out.println("value 2 = " + str2);
}
Run Code Online (Sandbox Code Playgroud)
在我的Android应用中,我想调用此方法.如何使用org.apache.http.client.methods.HttpPost为参数赋予正确的值;
我注意到我可以使用注释@HeaderParam并简单地将标头添加到HttpPost对象.这是正确的方法吗?这样做:
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("str1", "a value");
httpPost.setHeader("str2", "another value");
Run Code Online (Sandbox Code Playgroud)
在httpPost上使用setEntity方法将不起作用.它仅使用json字符串设置参数str1.使用时如:
JSONObject json = new JSONObject();
json.put("str1", "a value");
json.put("str2", "another value");
HttpEntity e = new StringEntity(json.toString());
httpPost.setEntity(e);
//server output: value 1 = {"str1":"a value","str2":"another value"}
Run Code Online (Sandbox Code Playgroud) 我正在使用JQuery ajax jsonp.我有以下JQuery代码:
$.ajax({
type:"GET",
url: "Login.aspx", // Send the login info to this page
data: str,
dataType: "jsonp",
timeout: 200000,
jsonp:"skywardDetails",
success: function(result)
{
// Show 'Submit' Button
$('#loginButton').show();
// Hide Gif Spinning Rotator
$('#ajaxloading').hide();
}
});
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,我只想将请求发送为"POST"而不是"GET",请建议我如何实现这一点.
谢谢
我在Angular JS中创建了一个应用程序,用于通过$ http帖子下载Excel工作簿.
在下面的代码中,我以JSON的形式传递信息,并通过角度$ http帖子将其发送到服务器REST Web服务(java).Web服务使用JSON中的信息并生成Excel工作簿.在$ http post的成功主体内的响应中,我在该数据变量中获取二进制数据,但不知道如何转换它并下载为Excel文件.
谁能告诉我一些解决方案,将二进制文件转换为Excel文件并下载?
我的代码如下:
$http({
url: 'myweb.com/myrestService',
method: "POST",
data: json, //this is your json data string
headers: {
'Content-type': 'application/json'
}
}).success(function (data, status, headers, config) {
// Here i'm getting excel sheet binary datas in 'data'
}).error(function (data, status, headers, config) {
});
Run Code Online (Sandbox Code Playgroud) 我正在编写一个注册为webhook端点的脚本.我知道它已成功注册,因为我正在将每个请求的标头写入我的服务器日志.这是一个示例:
Content-Type: text/xml; charset=UTF-8
User-Agent: Jakarta Commons-HttpClient/3.1
Host: =={obfuscated}==
Content-Length: 1918
Run Code Online (Sandbox Code Playgroud)
我注册的API是将JSON对象发布到我的脚本,我想使用PHP解析该对象.正如您从请求标头中看到的那样,有一个很好的大胖JSON对象等待解析.这似乎很简单,但事实并非如此.
起初我尝试使用$_POST['json']或只是$_POST因为数据不在数组中,我真的不确定如何访问它.
我尝试过使用file_get_contents('php://input')和fopen('php://input', 'r')不使用json_decode()但没有运气.我无法使用,http_get_request_body()因为我所使用的服务器没有PECL,这是我无法控制的.
有没有其他方法可以与我错过的POST-ed JSON对象进行交互?谢谢!
我正在学习Django 1.6.
我想使用HTTP POST请求发布一些JSON,我正在使用Django来完成此任务的学习.
我试图用request.POST['data'],request.raw_post_data,request.body但都不是为我工作.
我的views.py是
import json
from django.http import StreamingHttpResponse
def main_page(request):
if request.method=='POST':
received_json_data=json.loads(request.POST['data'])
#received_json_data=json.loads(request.body)
return StreamingHttpResponse('it was post request: '+str(received_json_data))
return StreamingHttpResponse('it was GET request')
Run Code Online (Sandbox Code Playgroud)
我使用请求模块发布JSON数据.
import requests
import json
url = "http://localhost:8000"
data = {'data':[{'key1':'val1'}, {'key2':'val2'}]}
headers = {'content-type': 'application/json'}
r=requests.post(url, data=json.dumps(data), headers=headers)
r.text
Run Code Online (Sandbox Code Playgroud)
r.text应打印该消息并发布数据,但我无法解决这个简单的问题.请告诉我如何在Django 1.6中收集发布的数据?
http-post ×10
json ×4
android ×2
jquery ×2
post ×2
android-ion ×1
angularjs ×1
asp.net-mvc ×1
django ×1
django-views ×1
excel ×1
java ×1
jsonp ×1
logging ×1
nginx ×1
objective-c ×1
okhttp ×1
php ×1
python ×1
spring ×1
spring-mvc ×1
web-services ×1