微信小程序向服务器传递数据(实验篇)

遇到的问题:
用SSM做后台,当微信小程序向后台传递数据时(包括对象和字符串),传递总是失败,错误报400。wx.request的请求语法也是没有问题的,但是后台不识别。所以我新建了一个【servlet】,在doGet方法里写内容。因为wx.request的请求默认是GET方法。也可以改成POST,那么就在【servlet】的doPost方法体里写代码。

以下是两个简单的小实验。

传递对象:

微信页面:

test(){
    var goods={};
    goods.goodsId="2020002";
    wx.request({
      url: 'http://192.168.1.3:8080/SweetWine/SearchGoodsBygoodsId', //仅为示例,并非真实的接口地址
      data: {
        goods
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success (res) {
        console.log(res)
      }
    })
  }

后端的servlet:

String goodsId=request.getParameter("goods");
System.out.println(request);
System.out.println(goodsId);

后台输出结果:
org.apache.catalina.connector.RequestFacade@2b3dfa73
{“goodsId”:“2020002”}

传递字符串:

微信页面:

test(){
    let goodsId="2030002";
    wx.request({
      url: 'http://192.168.1.3:8080/SweetWine/SearchGoodsBygoodsId', //仅为示例,并非真实的接口地址
      data: {
        goodsId
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success (res) {
        console.log(res)
      }
    })
  }

后端的servlet:

String goodsId=request.getParameter("goodsId");
System.out.println(request);
System.out.println(goodsId);

后台输出结果:
org.apache.catalina.connector.RequestFacade@2b3dfa75
2020002

没啥用的后台代码:

package com.guo.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.guo.entity.Goods;
import com.guo.service.GoodsService;
import com.guo.service.impl.GoodsServiceImp;

import net.sf.json.JSONObject;

/**
 * Servlet implementation class SearchGoodsBygoodsI
 */
@WebServlet("/SearchGoodsBygoodsI")
public class SearchGoodsBygoodsI extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SearchGoodsBygoodsI() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//response.getWriter().append("Served at: ").append(request.getContextPath());

		String goodsId=request.getParameter("goodsId");
		System.out.println(request);
		System.out.println(goodsId);
		
		GoodsService goodsService=new GoodsServiceImp();
		JSONObject obj=new JSONObject();
		
		if(goodsService.SearchGoodsBygoodsId(goodsId)!=null) {
			List<Goods> goods=goodsService.SearchGoodsBygoodsId(goodsId);
			obj.put("goods", goods);
		}else {
			obj.put("goods", "NULL");
		}
		
		PrintWriter out=response.getWriter();
		out.println(obj);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//doGet(request, response);
	}

}

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值