5、获取题分余额
<p>[TOC]</p>
<h4>简要描述</h4>
<p>> 获取用户剩余题分</p>
<h4>请求URL</h4>
<ul>
<li><code>http://fapi.suanst.com:8009/getpoint.sa</code> 或 <code>{host}/getpoint.sa</code></li>
</ul>
<h4>请求方式</h4>
<ul>
<li><code>GET</code> 或 <code>POST</code></li>
</ul>
<h4>请求编码</h4>
<ul>
<li><code>UTF-8</code></li>
</ul>
<h4>请求包头</h4>
<p>> 请求包头即 HTTP Request Header</p>
<ul>
<li><code>Content-Type: application/x-www-form-urlencoded; charset=utf-8</code></li>
</ul>
<h4>参数说明</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">必选</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">userstr</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string,字符串</td>
<td>用户密码串</td>
</tr>
<tr>
<td style="text-align: left;">r(参数名可自定义)</td>
<td style="text-align: left;">是</td>
<td style="text-align: left;">string,字符串</td>
<td>随机值,用以避免读取缓存,值可自定义随机内容,建议8位以上</td>
</tr>
<tr>
<td style="text-align: left;">ascii</td>
<td style="text-align: left;">否</td>
<td style="text-align: left;">int,整数型</td>
<td>是否将返回内容的中文进行escape编码,默认不编码、为1时进行编码</td>
</tr>
</tbody>
</table>
<h4>发包格式</h4>
<pre><code class="language-vb">&quot;为便于观看,对每个字段值后增加了换行,实际发包不需要回车换行符&quot;
userstr=myid|AKJ39DJ2G22UHDN
&amp;r=lZdQrzkmwOUhVbU96nSIQnxWvhYzPupR
&amp;ascii=</code></pre>
<h4>返回包头</h4>
<p>> 返回包头即 HTTP Response Header</p>
<ul>
<li><code>Content-Type: application/json</code></li>
</ul>
<h4>返回示例</h4>
<pre><code>&quot;为便于观看,对每个字段进行了格式化,实际返回内容无回车换行Tab符&quot;
{
&quot;error&quot;: 0,
&quot;errmsg&quot;: &quot;&quot;,
&quot;warn&quot;: 0,
&quot;warnmsg&quot;: &quot;&quot;,
&quot;point&quot;: 10000
}
// ============ 另一种情况的返回值 ============
{
&quot;error&quot;: 1,
&quot;errmsg&quot;: &quot;密码串有误&quot;,
&quot;warn&quot;: 0,
&quot;warnmsg&quot;: &quot;&quot;,
&quot;point&quot;: -12345
}</code></pre>
<h4>返回参数说明</h4>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">error</td>
<td style="text-align: left;">int,整数型</td>
<td>是否有错误内容 1、0</td>
</tr>
<tr>
<td style="text-align: left;">errmsg</td>
<td style="text-align: left;">string,字符串</td>
<td>详细错误内容,应该在明显位置提示客户,并根据返回详细错误内容调整软件发题的流程</td>
</tr>
<tr>
<td style="text-align: left;">warn</td>
<td style="text-align: left;">int,整数型</td>
<td>是否有提醒内容 1、0</td>
</tr>
<tr>
<td style="text-align: left;">warnmsg</td>
<td style="text-align: left;">string,字符串</td>
<td>详细提醒内容,应该显示在软件应用上,告知客户</td>
</tr>
<tr>
<td style="text-align: left;">point</td>
<td style="text-align: left;">int,整数型</td>
<td>用户剩余总可用题分(不包含锁定题分),出现 errmsg 时 point 值固定 -12345</td>
</tr>
</tbody>
</table>
<h4>异常情况判断及处理</h4>
<p>> 1、判断返回内容长度是否>0,并且第一个字符为"{",否则可能是网络或服务器出现问题,导致无法获取。应该重新再获取上传图片服务器地址HOST。
2、上述判断还可以直接判断HTTP响应Status_Code(HTTP状态代码)是否为200,200即可直接进行json解析。如果不是200,则请重新获取HOST</p>
<h4>errmsg 返回内容举例</h4>
<p>> 1、当error为1时,errmsg显示具体详细的错误信息
2、仅包含目前的全部错误返回内容,以后可能还会增加其他错误内容</p>
<pre><code>&quot;密码串不符合规则&quot; &quot;密码串有误&quot;</code></pre>
<h4>warnmsg 返回内容举例</h4>
<p>> 1、当warn为1时,warnmsg显示具体详细的提醒信息
2、仅包含目前的全部提醒返回内容,以后可能还会增加其他提醒内容</p>
<pre><code>暂时仅空字符串 &quot;&quot;</code></pre>