开放 mm1接口发送彩信(也就是GPRS modem发送彩信) 代码 c#版

oldnew 2006-11-28 12:01:32
mm1接口也就是手机终端和mmsc(中国移动就是http://mmsc.monternet.com)用来发送mms message的接口, GPRS modem当然也是可以使用这一接口发送的.

using System;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Collections;
using System.Text;

namespace MMSLib
{
/// <summary>
/// MMSender 的摘要说明。
///
/// </summary>
public class MMSender
{
// 设置参数
string sMmscUrl="http://mmsc.monternet.com";
string sProxyUrl="10.0.0.172:80";

public MMSender()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public void SetMMSC(string szUrl)
{
sMmscUrl =szUrl;
}
public void SetProxy(string szUrl)
{
sProxyUrl = szUrl;
}


/* 发送MMS的过程
1> 创建消息发送接口
MMSender ms = new MMSender();
2> 设置参数属性
默认属性已经是中国移动参数,因此如果是中国移动用户,以下两个操作可以不需要
ms.SetMMSC("http://mmsc.monternet.com");
ms.SetProxy("10.0.0.172:80");
3> 创建消息
MMessage mm= new MMessage();
4> 设置消息内容
mm.SetSubject("标题"); // 设置标题
mm.AddTo("13825271511"); // 添加接收号码,调用一次添加一个接收号码
mm.AddFile("FileName"); // 添加发送文件,包含文件路径,调用一次添加一个发送文件
5> 发送消息
string szReult =ms.Send(mm);

6> 继续发送其他号码
mm.ClearTo();
mm.AddTo("13812345678");
ms.Send(mm);
*/


/* 避免协议冲突的设置
<configuration>
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true"/>
</settings>
</system.net>
</configuration>
*/
public string Send(MMessage mm)
{
try
{
// 验证参数有效性
WebRequest wReq = WebRequest.Create(sMmscUrl);
HttpWebRequest hReq = (HttpWebRequest)wReq;
wReq.Headers.Clear();
if( sProxyUrl.Length >0)
wReq.Proxy = new WebProxy(sProxyUrl);

wReq.ContentType ="application/vnd.wap.mms-message";
hReq.Accept ="application/vnd.wap.mms-message,text/plain,*/*";
wReq.Method ="POST";
hReq.KeepAlive = false;
hReq.UserAgent = "Nokia6681/2.0 (4.00.15) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1";
// Write Post Dat
byte[] byMM = mm.GetContent();
hReq.ContentLength = byMM.Length;
Stream sReq = wReq.GetRequestStream();
sReq.Write(byMM,0,byMM.Length);
sReq.Close();
// Http Request
WebResponse wRes= wReq.GetResponse();
HttpWebResponse hRes = (HttpWebResponse)wRes;
if ( hRes.StatusCode == HttpStatusCode.OK)
{
Stream sRes = wRes.GetResponseStream();
StreamReader sr = new StreamReader(sRes);
string szResult =sr.ReadToEnd(); // 发送结果
// Parse result sring
return szResult;
}
}
catch(Exception e)
{
throw new Exception(e.Message);
}
return string.Empty;
}
}
}
...全文
3001 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
太好 研究研究 先
chiyongmin 2007-04-10
  • 打赏
  • 举报
回复
modem 拨号错误提示777 用的是tc35I模块,卡已经开通GPRS服务了 百思不得其解,大家指教一下啊
abigfish 2007-04-04
  • 打赏
  • 举报
回复
本对对C#没研究,
public MMSender()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
试问这里是不是少了什么东西?
van911 2007-04-02
  • 打赏
  • 举报
回复
van911@126.com 3Q~~~
l1w1w1 2007-03-31
  • 打赏
  • 举报
回复
留个地址,^_^
van911 2007-03-25
  • 打赏
  • 举报
回复
oldnew(冬日暖阳)

请问这方面有没有什么好一点的教程或文挡之类的?

多谢~~
van911 2007-03-25
  • 打赏
  • 举报
回复
oldnew(冬日暖阳)
_____


向你致敬~~
womanlee 2007-03-09
  • 打赏
  • 举报
回复
楼主 我发了几天之后突然不能发送彩信了 每次都提示基础连接已关闭,但是telnet 代理 又是通的 请问怎么回事啊??
Kyle-soft 2007-03-07
  • 打赏
  • 举报
回复
有没有接收的例子呢?
qiri07 2007-03-05
  • 打赏
  • 举报
回复
学习!
mmxcpu 2007-02-08
  • 打赏
  • 举报
回复
做个记号学习
Kyle-soft 2007-01-31
  • 打赏
  • 举报
回复
非常优秀的实战文章!
corono 2007-01-08
  • 打赏
  • 举报
回复

我把他编到 windows mobile 5.0 当执行到“WebResponse wRes= wReq.GetResponse();”时发生异常。

我的 smartphone 是可以发彩信的。

请问 oldnew 知道这是怎么回事吗?
wenstory 2006-12-11
  • 打赏
  • 举报
回复
mark
DraculaW 2006-12-08
  • 打赏
  • 举报
回复
收藏一下 看起來像http協議有點
oldnew 2006-11-30
  • 打赏
  • 举报
回复
可使用ie上网,打开网页

如果使用cmwap拨号上网,ie是无法上网的.

很简单,telnet 10.0.0.172 80试试,因为无论发彩信,还是上wap网站,连接到的ip都是10.0.0.172:80
deerball 2006-11-30
  • 打赏
  • 举报
回复
注:进行上面试验时已拔掉网线,确认是通过modem进行的网络连接

另,用gprs上网时,传输层和网络层都是使用的什么协议呢?
deerball 2006-11-30
  • 打赏
  • 举报
回复
使用的是gprs modem进行的拨号,其中放有一张动感地带的sim卡

该过程没有问题,成功建立连接,并且可使用ie上网,打开网页

只是运行上面的程序时,执行到“WebResponse wRes= wReq.GetResponse();”时发生异常,
输出异常为“基础连接已经关闭: 接收时发生意外错误。”
oldnew 2006-11-29
  • 打赏
  • 举报
回复
拨号常用错误: 777 SIM卡的GPRS服务没有了,100%卡里没钱了
734 上面已经讲了解决方法了
692 没插卡或卡接触不好,反正没找到你的卡.

oldnew 2006-11-29
  • 打赏
  • 举报
回复
AT+CGDCONT=1,”IP”,”CMWAP”

有些modem已经内置了指定cmwap的指令,所以可要可不要,如果在拨号时出现 734 错误,(734 PPP 链接控制协议被终止) ,那就需要在modem的属性 \高级 界面中,在"额外的初始化命令"框中填入 AT+CGDCONT=1,”IP”,”CMWAP”, 不出现734,就没有必要填了

至于AT+CGATT=1..就不用考虑了
加载更多回复(8)

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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