Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从Android向C# web发送post请求

如何从Android向C# web发送post请求
EN

Stack Overflow用户
提问于 2019-01-28 12:25:20
回答 1查看 2.3K关注 0票数 1

正如我的问题所述,我有一个c# web (MVC.NET web 2),其控制器具有POST方法,该方法接收post请求(Json )并简单地将其写入日志文件(为了简单起见,只需确保从android接收到它)。另一方面,我有一个Android应用程序,它使用Volley向所提到的API发送post字符串请求。我使用了几种方法,例如使用Stringrequest、JsonObject请求等,但似乎没有一种方法有效(我得到了400个错误代码)。我已经在postman中测试了API,一切都很好.我在API方法中接收发布的字符串。如果我没能完成这一任务,请帮助我,否则我的工作将处于平衡状态。提前谢谢。我的代码随函附上:

网络API控制器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public class TestController : ApiController
    {
        // POST: api/test
        [HttpPost]
        [Route("api/test")]
        public void Post()
        {
            string param = Request.Content.ReadAsStringAsync().Result;
            EventLogger.writeErrorLog("Posted payload --> " + param)
        }
   }

Android代码发送

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void postDummy() {
    String url = "http://10.0.2.2:1106/api/test";

    RequestQueue requestQueue = Volley.newRequestQueue(this);
    JSONObject jsonBodyObj = new JSONObject();

    try{
        jsonBodyObj.put("payload", "XYZ");
    }catch (JSONException e){
        e.printStackTrace();
    }
    final String requestBody = jsonBodyObj.toString();
    Log.d("Json :--> ", requestBody);

    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST,
            url, null, new Response.Listener<JSONObject>(){
        @Override    public void onResponse(JSONObject response) {
            Log.i("Response",String.valueOf(response));
        }
    }, new Response.ErrorListener() {
        @Override    public void onErrorResponse(VolleyError error) {
            VolleyLog.e("Error: ", error.getMessage());
        }
    }){
        @Override
        public String getBodyContentType() {
            return "application/json";
        }

        @Override
        public byte[] getBody() {
            try {
                return requestBody == null ? null : requestBody.getBytes("utf-8");
            } catch (UnsupportedEncodingException uee) {
                VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s",
                        requestBody, "utf-8");
                return null;
            }
        }
    };

    requestQueue.add(jsonObjectRequest);
}

来自Android 的错误日志

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D/Json :-->: {"payload":"XYZ"}

E/Volley: 561 BasicNetwork.performRequest:http://10.0.2.2:1106/api/test E/Volley的意外响应代码400:1 6. 6.onErrorResponse: Error response : Error:

邮差测试结果 Web测试结果的截图

EN

回答 1

Stack Overflow用户

发布于 2019-08-01 13:35:51

我的情况非常相似,当我从android (带有自定义头的C# )调用时,android返回400。解决方案(在我的例子中)很简单,我只是删除了“Content”"application/json“,让volley做任何事情。

我的代码工作: ANDROID:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                try{
                JSONObject postparams = new JSONObject();
                postparams.put("param1", "1");
                postparams.put("param2", "2");
                String URL=sesion.urlAire + "api/adjunto/getArchivo";
                RequestQueue requestQueue= Volley.newRequestQueue(context);
                JsonObjectRequest objectRequest=new JsonObjectRequest(
                    Request.Method.POST,
                    URL,
                    postparams,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject  response) {
                            //do something
                        }
                    },
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            //do something
                        }
                    }
                )
                {
                    @Override
                    public Map getHeaders() throws AuthFailureError {
                        HashMap headers = new HashMap();
                        //headers.put("Content-Type", "application/json");
                        headers.put("authorization", sesion.token);
                        return headers;
                    }
                };
                requestQueue.add(objectRequest);

            }catch (Exception e){}

C#:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [HttpPost]
    public CustomObject getArchivo(PostData postData) {
        return new CustomObject{ param1="1" };
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54409756

复制
相关文章
Mac 设置静态IP的方法 和 Mac 设置静态IP后 无法联网问题
在使用 jekins 打包的时候,在同一个局域网内可以访问 jekins 的地址来新增项目、打包、配置等等各种操作,但是如果打包机的IP不是固定的,那么在每次其IP改动的时候,我们都无法访问其地址,如果多个项目都在使用这个 jekins 打包的话,那么所有人都访问不到,这样是相当尴尬的事情。所以静态IP是必须滴。
onety码生
2018/11/21
9.6K0
[RK3399/RK3328][Android10.0]Ethernet:以太网设置静态ip,重启后无法获取IP的问题「建议收藏」
Platform: RK3399/RK3328 OS: Android 10.0
全栈程序员站长
2022/09/02
3.3K0
CDN配置后无法获取真实ip
这篇文章最后修改于 2022-06-10 日,距今已有 166 天,请注意甄别内容是否已经过时!
羽翼博客
2022/11/28
4.8K0
CDN配置后无法获取真实ip
服务器装Proxmox VE/多IP设置和单IP设置Nat转发
之前用op家的服务器也折腾了一段时间,不过有寥写的教程很快搞定,期间折腾过ipv6后面没成功,网络教程也不行先咕咕咕。前天晚上下手ikoula15欧元母鸡,多买了2个IP,感觉乞丐找到了粮仓,记录折腾。GG,贱人度现在都是无用教程------ [Proxmox-Installation.png] 单ip做nat看这个https://www.xinai.de/83312.html 注意先设置网卡转发 cat /etc/sysctl.conf 看看有没有这行,没增加。有被注释,取消注释 net.ipv4.ip_
小沨
2020/04/24
6.9K0
服务器装Proxmox VE/多IP设置和单IP设置Nat转发
网站建设设置ip如何设置 IP地址对服务器的作用
每一台联网的电脑都会被分配一个IP 地址,它可以与网络互通,也是网络之间的互联协议。通俗来说IP 地址就是计算机之间进行互相通讯的一种协议。所有生产的计算机只有在和因特网达成这个协议的时候,才被准许连接到互联网。IP 地址的重要性是不言而喻的。现在的IP 网络一般就都是分十进制来表示,也就是通常所说的IP 地址。那么网站建设设置ip该如何设置?
用户8715145
2021/12/01
5.3K0
Django设置 DEBUG=False后静态文件无法加载解决
前段时间调试一直是在Debug=True先运行的,没有什么问题。今天关闭了Debug后,出现了一个问题。就是静态文件找不到了,「img、css、js」都提示404,无法准确的访问 static 静态文件。
叉叉敌
2019/02/20
2.4K0
Django设置 DEBUG=False后静态文件无法加载解决
前段时间调试一直是在Debug=True先运行的,没有什么问题。今天关闭了Debug后,出现了一个问题。就是静态文件找不到了,「img、css、js」都提示404,无法准确的访问 static 静态文件。
py3study
2020/04/22
7K3
解决浏览器设置代理IP无法上网的问题
大家都知道,在当今信息时代,互联网已经成为了我们生活必不可少的一部分。而浏览器作为我们上网的窗口,更是被广泛使用。有时候,我们会遇到一些问题,例如设置了代理IP后无法正常上网。那么该如何解决这个问题呢?别担心,本文将为您一一解答!
用户614136809
2023/09/15
1.7K0
防火墙的设置使内网ip无法ping通
在内网进行协作开发时通常会有他人通过自己个人ip来访问本地电脑上的项目,但是偶尔也会出现一种情况,平时连接都是正常的,可是就有那么些时候突然别人都连接不到自己电脑上的项目了,通过ping自己的域名发现也是连接不通,通过排查网络配置等中问题,发现都是正常的,百思不得其解
在水一方
2022/06/14
2.5K0
防火墙的设置使内网ip无法ping通
为克隆后的CentOS虚拟机设置静态IP
CentOS虚拟机克隆后,由于网卡MAC地址等信息跟被克隆的系统一致,但是克隆后的虚拟机网卡其实已经变了,所以CentOS不会采用原来的网卡配置文件。所以克隆后的CentOS直接去修改原有网卡配置文件,去设置静态/固定IP是不会生效的。
KenTalk
2018/09/11
1.3K0
启动项目成功后,无法通过ip访问解决方案
将dev-server.js下的var server = app.listen(port, "127.0.0.1")修改为“0.0.0.0” ,如下图所示 image.png
24-丰总
2018/07/09
1.3K0
如何设置服务器ip地址 用IP地址还要注意什么
每一个上网的人来说,所浏览的网站都是经过建立服务器来实现,等于有了服务器,建立好IP地址之后就可以使用电脑进行访问,用户可以浏览到各种网页和各类网站,但也有一些网站和网址是并不安全的,往往会入侵到所在电脑的服务器地址,所以如何设置服务器ip地址的方法和技巧都需要建立在安全的基础上。
用户8715145
2021/09/17
10K0
如何设置服务器ip地址 用IP地址还要注意什么
服务器安装宝塔之后无法ping通IP地址
最近不知道是什么原因导致,备案越来越繁琐,越来越复杂,上周给公司备案需要二次核验,又得法人拍摄承诺视频等等,,,总之比之前的手续复杂了不少,然后昨天又接到之前已备案域名的核验,说是备案域名必须解析在服务器IP才行,解析是没有问题,但是主站开启了网站证书,直接解析到服务器的话就会导致提示“访问的证书无效”等风险提示,这种提示太不友好,所以不能这么操作,最终决定使用三级域名去解析,这样就可以了,但是腾讯的客服告知服务器无法ping通,查询不到具体的IP地址,看吧,事情总是一波接着一波。。。
李洋博客
2023/03/03
4.7K0
服务器安装宝塔之后无法ping通IP地址
win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址
win7设置固定IP重启后无法上网,ipconfig显示为自动配置IPV4 169.254的地址
青阳
2021/04/02
8.2K0
服务器关闭后,软件无法启动的原因何在?
服务器关闭后,依赖其运行的软件无法访问必要的数据和服务,导致软件不能正常打开和工作。服务器是提供计算资源、存储数据和管理网络服务的核心设备,一旦停止工作,所有与之关联的应用都将受到影响。
用户11163528
2024/07/31
2930
关于服务器安装docker后无法ping通内网
关于服务器安装docker后无法ping通内网
Java架构师必看
2021/06/10
2.8K0
关于服务器安装docker后无法ping通内网
多台服务器安装docker,搭建kubernetes集群,在部署过程中检查是否服务器之间内网是否通讯,多台服务器IP地址段为【172.17.0.x】,【172.18.0.x】,【172.19.0.x】,docker部署完毕后,正常进行启动,随后内网不通讯,【172.17.0.x】服务器与【172.18.0.x】,【172.19.0.x】之间互不通讯,【172.18.0.x】,【172.19.0.x】之间没问题。
互联网-小阿宇
2022/11/21
2.4K0
Kubernetes与菲律宾停电 – 在Tailscale上设置k0s
在菲律宾构建可靠的 IT 系统面临着独特的挑战,例如频繁的停电和不可靠的互联网连接。为了有效地解决这些问题,我们的团队实施了一个弹性设置,确保最终用户能够不间断地访问关键服务。本指南将引导您完成使用 Tailscale 和 k0s 的类似设置,该设置可以在您的家庭实验室环境中复制。
云云众生s
2024/11/15
1140
Kubernetes与菲律宾停电 – 在Tailscale上设置k0s
关于服务器安装docker后无法ping通内网
多台服务器安装docker,搭建kubernetes集群,在部署过程中检查是否服务器之间内网是否通讯,多台服务器IP地址段为【172.17.0.x】,【172.18.0.x】,【172.19.0.x】,docker部署完毕后,正常进行启动,随后内网不通讯,【172.17.0.x】服务器与【172.18.0.x】,【172.19.0.x】之间互不通讯,【172.18.0.x】,【172.19.0.x】之间没问题。
全栈程序员站长
2022/06/29
2.3K0
CentOS7修改IP地址后无法ping通问题记录[通俗易懂]
在键入ifconfig enp0s3 192.168.56.2后,在cmd中无法ping通此IP地址
全栈程序员站长
2022/07/28
2.3K0
CentOS7修改IP地址后无法ping通问题记录[通俗易懂]

相似问题

停电后无法启动服务器

10

昨天停电后无法上网

10

Ubuntu10.04服务器在停电后不获取网络IP

40

XerServer 6.5:停电后无法启动xapi

10

设置静态IP后无法访问的服务器

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文