微信公众平台,成为开发者,URL如何填写

山城忙碌人 2014-05-28 06:46:34
问题描述:
在微信公众平台,成为开发者填写URL时,我的服务器无法接收到微信服务器的验证推送,我可以确定URL没写错,是一个二级域名,如:http://wx.baidu.com,该域名在浏览器可以正常访问,由于填写URL时,只能接受80端口,并且该服务器80端口被其它应用占用,所以我在该二级域名的默认文档做了中转,中转到java项目,二级域名默认文档代码如下。


<html>
<head>
<script type="text/javascript">
function load(){
document.location.href = "http://wx.baidu.com:8080/wx/HandleWeiXinService"
}
</script>
</head>
<body onload="load()">

</body>
</html>




域名在浏览器能正常访问

请问在成为开发者,填写URL时应该如何设置,才能接收到微信服务器的数据推送。
...全文
7898 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
82年东方树叶 2016-02-22
  • 打赏
  • 举报
回复
顶一下,我的也是这种情况,就没有人知道吗。?
seven6789 2014-06-20
  • 打赏
  • 举报
回复
引用 3 楼 bisubisu 的回复:
[quote=引用 1 楼 yys79 的回复:]
你这样,微信只会得到你那段html和js代码,所以没戏。80被啥占用了?

80端口被正在使用的软件占用了,并且这个软件无法修改端口。[/quote]
那就用nat123端口映射一下
山城忙碌人 2014-06-20
  • 打赏
  • 举报
回复
沉了,就没人知道吗?
山城忙碌人 2014-06-04
  • 打赏
  • 举报
回复
帖子沉了,顶一下!
山城忙碌人 2014-05-30
  • 打赏
  • 举报
回复
引用 9 楼 x19881216 的回复:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page import="java.net.URL"%>
<%@page import="java.net.HttpURLConnection"%>
<%@page import="java.util.Map.Entry"%>

<%
	//拼接参数
	Map<String, Object> params = request.getParameterMap();

	String serialized = "_=_";

	for (Entry entry : params.entrySet()) {
		String key = (String) entry.getKey();
		Object val = entry.getValue();
		if (val instanceof String) {
			serialized += ("&" + key + "=" + val);
		}

		if (val instanceof String[]) {
			for (String str : (String[]) val) {
				serialized += ("&" + key + "=" + str);
			}
		}
	}

	//将请求转发给目标地址
	HttpURLConnection conn = (HttpURLConnection) new URL("http://www.baidu.com/baidu?" + serialized).openConnection();

	conn.setRequestMethod("GET");
	conn.setDoInput(true);
	conn.setDoOutput(false);

	conn.connect();

	if (conn.getResponseCode() == 200) {
		BufferedReader bis = new BufferedReader(new InputStreamReader(conn.getInputStream()));
		try {
			String tmp = null;

			while ((tmp = bis.readLine()) != null) {
				out.print(tmp);
			}
		} finally {
			bis.close();
		}
	}
%>

大致就是这样的,还要注意字符编码、超时、异常的处理,这里就不写了,楼主自个完善吧。
非常感谢,可惜80被ASP的程序占用了。。。相当于要用JS代码,或ASP代码转。。。。 我可能要学习ASP基础知识才能中转了!
loveunittesting 2014-05-29
  • 打赏
  • 举报
回复
你这样,微信只会得到你那段html和js代码,所以没戏。80被啥占用了?
小绵羊 2014-05-29
  • 打赏
  • 举报
回复
用参数?wd=xxx可以模拟百度了哈哈哈
小绵羊 2014-05-29
  • 打赏
  • 举报
回复

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@page import="java.io.InputStreamReader"%>
<%@page import="java.io.BufferedReader"%>
<%@page import="java.io.BufferedInputStream"%>
<%@page import="java.net.URL"%>
<%@page import="java.net.HttpURLConnection"%>
<%@page import="java.util.Map.Entry"%>

<%
	//拼接参数
	Map<String, Object> params = request.getParameterMap();

	String serialized = "_=_";

	for (Entry entry : params.entrySet()) {
		String key = (String) entry.getKey();
		Object val = entry.getValue();
		if (val instanceof String) {
			serialized += ("&" + key + "=" + val);
		}

		if (val instanceof String[]) {
			for (String str : (String[]) val) {
				serialized += ("&" + key + "=" + str);
			}
		}
	}

	//将请求转发给目标地址
	HttpURLConnection conn = (HttpURLConnection) new URL("http://www.baidu.com/baidu?" + serialized).openConnection();

	conn.setRequestMethod("GET");
	conn.setDoInput(true);
	conn.setDoOutput(false);

	conn.connect();

	if (conn.getResponseCode() == 200) {
		BufferedReader bis = new BufferedReader(new InputStreamReader(conn.getInputStream()));
		try {
			String tmp = null;

			while ((tmp = bis.readLine()) != null) {
				out.print(tmp);
			}
		} finally {
			bis.close();
		}
	}
%>

大致就是这样的,还要注意字符编码、超时、异常的处理,这里就不写了,楼主自个完善吧。
山城忙碌人 2014-05-29
  • 打赏
  • 举报
回复
引用 5 楼 x19881216 的回复:
可以用一个页面接受那个请求然后模拟http请求你那个业务地址。 有点类似路由器的原理。
请问如何模似法?能提供下学习资料,或例子吗?
小绵羊 2014-05-29
  • 打赏
  • 举报
回复
引用 6 楼 bisubisu 的回复:
[quote=引用 5 楼 x19881216 的回复:] 可以用一个页面接受那个请求然后模拟http请求你那个业务地址。 有点类似路由器的原理。
function load(){ document.location.href = "http://wx.baidu.com:8080/wx/HandleWeiXinService" } 这样直接跳转不行吗?[/quote] 。。。不行的,你可以用http模拟请求下你的这个地址,只会得到你这个页面的源码的。 要用httpconnection或者HttpClient之类的工具把tx发给你这个页面的请求转发给处理页面,然后将结果返回。 我做过一个,但源码弄丢了。。。
山城忙碌人 2014-05-29
  • 打赏
  • 举报
回复
引用 5 楼 x19881216 的回复:
可以用一个页面接受那个请求然后模拟http请求你那个业务地址。 有点类似路由器的原理。
function load(){ document.location.href = "http://wx.baidu.com:8080/wx/HandleWeiXinService" } 这样直接跳转不行吗?
小绵羊 2014-05-29
  • 打赏
  • 举报
回复
可以用一个页面接受那个请求然后模拟http请求你那个业务地址。 有点类似路由器的原理。
山城忙碌人 2014-05-29
  • 打赏
  • 举报
回复
引用 2 楼 fangmingshijie 的回复:
首先要是外网地址,而且必须是80端口。
亲,我是外网,可惜80端口被占用了。我是用的java程序
山城忙碌人 2014-05-29
  • 打赏
  • 举报
回复
引用 1 楼 yys79 的回复:
你这样,微信只会得到你那段html和js代码,所以没戏。80被啥占用了?
80端口被正在使用的软件占用了,并且这个软件无法修改端口。
  • 打赏
  • 举报
回复
首先要是外网地址,而且必须是80端口。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧